home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / QuickTimeComponents.a < prev    next >
Text File  |  1996-05-01  |  182KB  |  7,142 lines

  1. ;
  2. ;    File:        QuickTimeComponents.a
  3. ;
  4. ;    Contains:    QuickTime Interfaces.
  5. ;
  6. ;    Version:    Technology:    QuickTime 2.1
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__QUICKTIMECOMPONENTS__') = 'UNDEFINED' THEN
  19. __QUICKTIMECOMPONENTS__ SET 1
  20.  
  21.     IF &TYPE('__COMPONENTS__') = 'UNDEFINED' THEN
  22.     include 'Components.a'
  23.     ENDIF
  24.     IF &TYPE('__IMAGECOMPRESSION__') = 'UNDEFINED' THEN
  25.     include 'ImageCompression.a'
  26.     ENDIF
  27.     IF &TYPE('__MOVIES__') = 'UNDEFINED' THEN
  28.     include 'Movies.a'
  29.     ENDIF
  30.     IF &TYPE('__QUICKDRAW__') = 'UNDEFINED' THEN
  31.     include 'Quickdraw.a'
  32.     ENDIF
  33.     IF &TYPE('__VIDEO__') = 'UNDEFINED' THEN
  34.     include 'Video.a'
  35.     ENDIF
  36.     IF &TYPE('__MEMORY__') = 'UNDEFINED' THEN
  37.     include 'Memory.a'
  38.     ENDIF
  39.     IF &TYPE('__SOUND__') = 'UNDEFINED' THEN
  40.     include 'Sound.a'
  41.     ENDIF
  42.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  43.  
  44. clockComponentType                EQU        'clok'
  45. systemTickClock                    EQU        'tick'                ; subtype: 60ths since boot        
  46. systemSecondClock                EQU        'seco'                ; subtype: seconds since 1904        
  47. systemMillisecondClock            EQU        'mill'                ; subtype: 1000ths since boot        
  48. systemMicrosecondClock            EQU        'micr'                ; subtype: 1000000ths since boot    
  49.  
  50. kClockRateIsLinear                EQU        1
  51. kClockImplementsCallBacks        EQU        2
  52. ; * These are Clock procedures *
  53. ;
  54. ; pascal ComponentResult ClockGetTime(ComponentInstance aClock, TimeRecord *out)
  55. ;
  56.     IF ¨ GENERATINGCFM THEN
  57.         Macro
  58.         _ClockGetTime
  59.             move.l              #$00040001,-(sp)
  60.             moveq               #0,D0
  61.             dc.w                $A82A
  62.         EndM
  63.     ELSE
  64.         IMPORT_CFM_FUNCTION ClockGetTime
  65.     ENDIF
  66.  
  67. ;
  68. ; pascal QTCallBack ClockNewCallBack(ComponentInstance aClock, TimeBase tb, short callBackType)
  69. ;
  70.     IF ¨ GENERATINGCFM THEN
  71.         Macro
  72.         _ClockNewCallBack
  73.             move.l              #$00060002,-(sp)
  74.             moveq               #0,D0
  75.             dc.w                $A82A
  76.         EndM
  77.     ELSE
  78.         IMPORT_CFM_FUNCTION ClockNewCallBack
  79.     ENDIF
  80.  
  81. ;
  82. ; pascal ComponentResult ClockDisposeCallBack(ComponentInstance aClock, QTCallBack cb)
  83. ;
  84.     IF ¨ GENERATINGCFM THEN
  85.         Macro
  86.         _ClockDisposeCallBack
  87.             move.l              #$00040003,-(sp)
  88.             moveq               #0,D0
  89.             dc.w                $A82A
  90.         EndM
  91.     ELSE
  92.         IMPORT_CFM_FUNCTION ClockDisposeCallBack
  93.     ENDIF
  94.  
  95. ;
  96. ; pascal ComponentResult ClockCallMeWhen(ComponentInstance aClock, QTCallBack cb, long param1, long param2, long param3)
  97. ;
  98.     IF ¨ GENERATINGCFM THEN
  99.         Macro
  100.         _ClockCallMeWhen
  101.             move.l              #$00100004,-(sp)
  102.             moveq               #0,D0
  103.             dc.w                $A82A
  104.         EndM
  105.     ELSE
  106.         IMPORT_CFM_FUNCTION ClockCallMeWhen
  107.     ENDIF
  108.  
  109. ;
  110. ; pascal ComponentResult ClockCancelCallBack(ComponentInstance aClock, QTCallBack cb)
  111. ;
  112.     IF ¨ GENERATINGCFM THEN
  113.         Macro
  114.         _ClockCancelCallBack
  115.             move.l              #$00040005,-(sp)
  116.             moveq               #0,D0
  117.             dc.w                $A82A
  118.         EndM
  119.     ELSE
  120.         IMPORT_CFM_FUNCTION ClockCancelCallBack
  121.     ENDIF
  122.  
  123. ;
  124. ; pascal ComponentResult ClockRateChanged(ComponentInstance aClock, QTCallBack cb)
  125. ;
  126.     IF ¨ GENERATINGCFM THEN
  127.         Macro
  128.         _ClockRateChanged
  129.             move.l              #$00040006,-(sp)
  130.             moveq               #0,D0
  131.             dc.w                $A82A
  132.         EndM
  133.     ELSE
  134.         IMPORT_CFM_FUNCTION ClockRateChanged
  135.     ENDIF
  136.  
  137. ;
  138. ; pascal ComponentResult ClockTimeChanged(ComponentInstance aClock, QTCallBack cb)
  139. ;
  140.     IF ¨ GENERATINGCFM THEN
  141.         Macro
  142.         _ClockTimeChanged
  143.             move.l              #$00040007,-(sp)
  144.             moveq               #0,D0
  145.             dc.w                $A82A
  146.         EndM
  147.     ELSE
  148.         IMPORT_CFM_FUNCTION ClockTimeChanged
  149.     ENDIF
  150.  
  151. ;
  152. ; pascal ComponentResult ClockSetTimeBase(ComponentInstance aClock, TimeBase tb)
  153. ;
  154.     IF ¨ GENERATINGCFM THEN
  155.         Macro
  156.         _ClockSetTimeBase
  157.             move.l              #$00040008,-(sp)
  158.             moveq               #0,D0
  159.             dc.w                $A82A
  160.         EndM
  161.     ELSE
  162.         IMPORT_CFM_FUNCTION ClockSetTimeBase
  163.     ENDIF
  164.  
  165. ;
  166. ; pascal ComponentResult ClockStartStopChanged(ComponentInstance aClock, QTCallBack cb, Boolean startChanged, Boolean stopChanged)
  167. ;
  168.     IF ¨ GENERATINGCFM THEN
  169.         Macro
  170.         _ClockStartStopChanged
  171.             move.l              #$00080009,-(sp)
  172.             moveq               #0,D0
  173.             dc.w                $A82A
  174.         EndM
  175.     ELSE
  176.         IMPORT_CFM_FUNCTION ClockStartStopChanged
  177.     ENDIF
  178.  
  179. ;
  180. ; pascal ComponentResult ClockGetRate(ComponentInstance aClock, Fixed *rate)
  181. ;
  182.     IF ¨ GENERATINGCFM THEN
  183.         Macro
  184.         _ClockGetRate
  185.             move.l              #$0004000A,-(sp)
  186.             moveq               #0,D0
  187.             dc.w                $A82A
  188.         EndM
  189.     ELSE
  190.         IMPORT_CFM_FUNCTION ClockGetRate
  191.     ENDIF
  192.  
  193.  
  194. kClockGetTimeSelect                EQU        $01
  195. kClockNewCallBackSelect            EQU        $02
  196. kClockDisposeCallBackSelect        EQU        $03
  197. kClockCallMeWhenSelect            EQU        $04
  198. kClockCancelCallBackSelect        EQU        $05
  199. kClockRateChangedSelect            EQU        $06
  200. kClockTimeChangedSelect            EQU        $07
  201. kClockSetTimeBaseSelect            EQU        $08
  202. kClockStartStopChangedSelect    EQU        $09
  203. kClockGetRateSelect                EQU        $0A
  204. ;
  205. ;    General Sequence Grab stuff
  206. ;
  207. ; typedef ComponentInstance             SeqGrabComponent
  208.  
  209. ; typedef ComponentInstance             SGChannel
  210.  
  211.  
  212. SeqGrabComponentType            EQU        'barg'
  213. SeqGrabChannelType                EQU        'sgch'
  214. SeqGrabPanelType                EQU        'sgpn'
  215. SeqGrabCompressionPanelType        EQU        'cmpr'
  216. SeqGrabSourcePanelType            EQU        'sour'
  217.  
  218. seqGrabToDisk                    EQU        1
  219. seqGrabToMemory                    EQU        2
  220. seqGrabDontUseTempMemory        EQU        4
  221. seqGrabAppendToFile                EQU        8
  222. seqGrabDontAddMovieResource        EQU        16
  223. seqGrabDontMakeMovie            EQU        32
  224. seqGrabPreExtendFile            EQU        64
  225. seqGrabDataProcIsInterruptSafe    EQU        128
  226. seqGrabDataProcDoesOverlappingReads EQU    256
  227. ; typedef unsigned long                 SeqGrabDataOutputEnum
  228.  
  229.  
  230. seqGrabRecord                    EQU        1
  231. seqGrabPreview                    EQU        2
  232. seqGrabPlayDuringRecord            EQU        4
  233. ; typedef unsigned long                 SeqGrabUsageEnum
  234.  
  235.  
  236. seqGrabHasBounds                EQU        1
  237. seqGrabHasVolume                EQU        2
  238. seqGrabHasDiscreteSamples        EQU        4
  239. ; typedef unsigned long                 SeqGrabChannelInfoEnum
  240.  
  241. SeqGrabFrameInfo        RECORD 0
  242. frameOffset                 ds.l    1                ; offset: $0 (0)
  243. frameTime                 ds.l    1                ; offset: $4 (4)
  244. frameSize                 ds.l    1                ; offset: $8 (8)
  245. frameChannel             ds.l    1                ; offset: $C (12)
  246. frameRefCon                 ds.l    1                ; offset: $10 (16)
  247. sizeof                     EQU *                    ; size:   $14 (20)
  248.                         ENDR
  249. ; typedef struct SeqGrabFrameInfo *        SeqGrabFrameInfoPtr
  250.  
  251.  
  252. grabPictOffScreen                EQU        1
  253. grabPictIgnoreClip                EQU        2
  254. grabPictCurrentImage            EQU        4
  255.  
  256. sgFlagControlledGrab            EQU        $01
  257. SGDeviceName            RECORD 0
  258. name                     ds        Str63            ; offset: $0 (0)
  259. icon                     ds.l    1                ; offset: $40 (64)
  260. flags                     ds.l    1                ; offset: $44 (68)
  261. refCon                     ds.l    1                ; offset: $48 (72)
  262. reserved                 ds.l    1                ; offset: $4C (76)        ;  zero
  263. sizeof                     EQU *                    ; size:   $50 (80)
  264.                         ENDR
  265.  
  266. sgDeviceNameFlagDeviceUnavailable EQU    $01
  267. SGDeviceListRecord        RECORD 0
  268. count                     ds.w    1                ; offset: $0 (0)
  269. selectedIndex             ds.w    1                ; offset: $2 (2)
  270. reserved                 ds.l    1                ; offset: $4 (4)        ;  zero
  271. entry                     ds        SGDeviceName    ; offset: $8 (8) <-- really an array of length one
  272. sizeof                     EQU *                    ; size:   $58 (88)
  273.                         ENDR
  274. ; typedef struct SGDeviceListRecord *    SGDeviceListPtr
  275.  
  276. ; typedef SGDeviceListPtr *                SGDeviceList
  277.  
  278.  
  279. sgDeviceListWithIcons            EQU        $01
  280. sgDeviceListDontCheckAvailability EQU    $02
  281.  
  282. seqGrabWriteAppend                EQU        0
  283. seqGrabWriteReserve                EQU        1
  284. seqGrabWriteFill                EQU        2
  285.  
  286. seqGrabUnpause                    EQU        0
  287. seqGrabPause                    EQU        1
  288. seqGrabPauseForMenu                EQU        3
  289.  
  290. channelFlagDontOpenResFile        EQU        2
  291. channelFlagHasDependency        EQU        4
  292.  
  293. sgPanelFlagForPanel                EQU        1
  294.  
  295. seqGrabSettingsPreviewOnly        EQU        1
  296. SGOutputRecord            RECORD 0
  297. data                     ds.l    1                ; offset: $0 (0) <-- really an array of length one
  298. sizeof                     EQU *                    ; size:   $4 (4)
  299.                         ENDR
  300. ; typedef struct SGOutputRecord *        SGOutput
  301.  
  302.  
  303. channelPlayNormal                EQU        0
  304. channelPlayFast                    EQU        1
  305. channelPlayHighQuality            EQU        2
  306. channelPlayAllData                EQU        4
  307. ;
  308. ; pascal ComponentResult SGInitialize(SeqGrabComponent s)
  309. ;
  310.     IF ¨ GENERATINGCFM THEN
  311.         Macro
  312.         _SGInitialize
  313.             move.l              #$00000001,-(sp)
  314.             moveq               #0,D0
  315.             dc.w                $A82A
  316.         EndM
  317.     ELSE
  318.         IMPORT_CFM_FUNCTION SGInitialize
  319.     ENDIF
  320.  
  321. ;
  322. ; pascal ComponentResult SGSetDataOutput(SeqGrabComponent s, const FSSpec *movieFile, long whereFlags)
  323. ;
  324.     IF ¨ GENERATINGCFM THEN
  325.         Macro
  326.         _SGSetDataOutput
  327.             move.l              #$00080002,-(sp)
  328.             moveq               #0,D0
  329.             dc.w                $A82A
  330.         EndM
  331.     ELSE
  332.         IMPORT_CFM_FUNCTION SGSetDataOutput
  333.     ENDIF
  334.  
  335. ;
  336. ; pascal ComponentResult SGGetDataOutput(SeqGrabComponent s, FSSpec *movieFile, long *whereFlags)
  337. ;
  338.     IF ¨ GENERATINGCFM THEN
  339.         Macro
  340.         _SGGetDataOutput
  341.             move.l              #$00080003,-(sp)
  342.             moveq               #0,D0
  343.             dc.w                $A82A
  344.         EndM
  345.     ELSE
  346.         IMPORT_CFM_FUNCTION SGGetDataOutput
  347.     ENDIF
  348.  
  349. ;
  350. ; pascal ComponentResult SGSetGWorld(SeqGrabComponent s, CGrafPtr gp, GDHandle gd)
  351. ;
  352.     IF ¨ GENERATINGCFM THEN
  353.         Macro
  354.         _SGSetGWorld
  355.             move.l              #$00080004,-(sp)
  356.             moveq               #0,D0
  357.             dc.w                $A82A
  358.         EndM
  359.     ELSE
  360.         IMPORT_CFM_FUNCTION SGSetGWorld
  361.     ENDIF
  362.  
  363. ;
  364. ; pascal ComponentResult SGGetGWorld(SeqGrabComponent s, CGrafPtr *gp, GDHandle *gd)
  365. ;
  366.     IF ¨ GENERATINGCFM THEN
  367.         Macro
  368.         _SGGetGWorld
  369.             move.l              #$00080005,-(sp)
  370.             moveq               #0,D0
  371.             dc.w                $A82A
  372.         EndM
  373.     ELSE
  374.         IMPORT_CFM_FUNCTION SGGetGWorld
  375.     ENDIF
  376.  
  377. ;
  378. ; pascal ComponentResult SGNewChannel(SeqGrabComponent s, OSType channelType, SGChannel *ref)
  379. ;
  380.     IF ¨ GENERATINGCFM THEN
  381.         Macro
  382.         _SGNewChannel
  383.             move.l              #$00080006,-(sp)
  384.             moveq               #0,D0
  385.             dc.w                $A82A
  386.         EndM
  387.     ELSE
  388.         IMPORT_CFM_FUNCTION SGNewChannel
  389.     ENDIF
  390.  
  391. ;
  392. ; pascal ComponentResult SGDisposeChannel(SeqGrabComponent s, SGChannel c)
  393. ;
  394.     IF ¨ GENERATINGCFM THEN
  395.         Macro
  396.         _SGDisposeChannel
  397.             move.l              #$00040007,-(sp)
  398.             moveq               #0,D0
  399.             dc.w                $A82A
  400.         EndM
  401.     ELSE
  402.         IMPORT_CFM_FUNCTION SGDisposeChannel
  403.     ENDIF
  404.  
  405. ;
  406. ; pascal ComponentResult SGStartPreview(SeqGrabComponent s)
  407. ;
  408.     IF ¨ GENERATINGCFM THEN
  409.         Macro
  410.         _SGStartPreview
  411.             move.l              #$00000010,-(sp)
  412.             moveq               #0,D0
  413.             dc.w                $A82A
  414.         EndM
  415.     ELSE
  416.         IMPORT_CFM_FUNCTION SGStartPreview
  417.     ENDIF
  418.  
  419. ;
  420. ; pascal ComponentResult SGStartRecord(SeqGrabComponent s)
  421. ;
  422.     IF ¨ GENERATINGCFM THEN
  423.         Macro
  424.         _SGStartRecord
  425.             move.l              #$00000011,-(sp)
  426.             moveq               #0,D0
  427.             dc.w                $A82A
  428.         EndM
  429.     ELSE
  430.         IMPORT_CFM_FUNCTION SGStartRecord
  431.     ENDIF
  432.  
  433. ;
  434. ; pascal ComponentResult SGIdle(SeqGrabComponent s)
  435. ;
  436.     IF ¨ GENERATINGCFM THEN
  437.         Macro
  438.         _SGIdle
  439.             move.l              #$00000012,-(sp)
  440.             moveq               #0,D0
  441.             dc.w                $A82A
  442.         EndM
  443.     ELSE
  444.         IMPORT_CFM_FUNCTION SGIdle
  445.     ENDIF
  446.  
  447. ;
  448. ; pascal ComponentResult SGStop(SeqGrabComponent s)
  449. ;
  450.     IF ¨ GENERATINGCFM THEN
  451.         Macro
  452.         _SGStop
  453.             move.l              #$00000013,-(sp)
  454.             moveq               #0,D0
  455.             dc.w                $A82A
  456.         EndM
  457.     ELSE
  458.         IMPORT_CFM_FUNCTION SGStop
  459.     ENDIF
  460.  
  461. ;
  462. ; pascal ComponentResult SGPause(SeqGrabComponent s, Byte pause)
  463. ;
  464.     IF ¨ GENERATINGCFM THEN
  465.         Macro
  466.         _SGPause
  467.             move.l              #$00020014,-(sp)
  468.             moveq               #0,D0
  469.             dc.w                $A82A
  470.         EndM
  471.     ELSE
  472.         IMPORT_CFM_FUNCTION SGPause
  473.     ENDIF
  474.  
  475. ;
  476. ; pascal ComponentResult SGPrepare(SeqGrabComponent s, Boolean prepareForPreview, Boolean prepareForRecord)
  477. ;
  478.     IF ¨ GENERATINGCFM THEN
  479.         Macro
  480.         _SGPrepare
  481.             move.l              #$00040015,-(sp)
  482.             moveq               #0,D0
  483.             dc.w                $A82A
  484.         EndM
  485.     ELSE
  486.         IMPORT_CFM_FUNCTION SGPrepare
  487.     ENDIF
  488.  
  489. ;
  490. ; pascal ComponentResult SGRelease(SeqGrabComponent s)
  491. ;
  492.     IF ¨ GENERATINGCFM THEN
  493.         Macro
  494.         _SGRelease
  495.             move.l              #$00000016,-(sp)
  496.             moveq               #0,D0
  497.             dc.w                $A82A
  498.         EndM
  499.     ELSE
  500.         IMPORT_CFM_FUNCTION SGRelease
  501.     ENDIF
  502.  
  503. ;
  504. ; pascal Movie SGGetMovie(SeqGrabComponent s)
  505. ;
  506.     IF ¨ GENERATINGCFM THEN
  507.         Macro
  508.         _SGGetMovie
  509.             move.l              #$00000017,-(sp)
  510.             moveq               #0,D0
  511.             dc.w                $A82A
  512.         EndM
  513.     ELSE
  514.         IMPORT_CFM_FUNCTION SGGetMovie
  515.     ENDIF
  516.  
  517. ;
  518. ; pascal ComponentResult SGSetMaximumRecordTime(SeqGrabComponent s, unsigned long ticks)
  519. ;
  520.     IF ¨ GENERATINGCFM THEN
  521.         Macro
  522.         _SGSetMaximumRecordTime
  523.             move.l              #$00040018,-(sp)
  524.             moveq               #0,D0
  525.             dc.w                $A82A
  526.         EndM
  527.     ELSE
  528.         IMPORT_CFM_FUNCTION SGSetMaximumRecordTime
  529.     ENDIF
  530.  
  531. ;
  532. ; pascal ComponentResult SGGetMaximumRecordTime(SeqGrabComponent s, unsigned long *ticks)
  533. ;
  534.     IF ¨ GENERATINGCFM THEN
  535.         Macro
  536.         _SGGetMaximumRecordTime
  537.             move.l              #$00040019,-(sp)
  538.             moveq               #0,D0
  539.             dc.w                $A82A
  540.         EndM
  541.     ELSE
  542.         IMPORT_CFM_FUNCTION SGGetMaximumRecordTime
  543.     ENDIF
  544.  
  545. ;
  546. ; pascal ComponentResult SGGetStorageSpaceRemaining(SeqGrabComponent s, unsigned long *bytes)
  547. ;
  548.     IF ¨ GENERATINGCFM THEN
  549.         Macro
  550.         _SGGetStorageSpaceRemaining
  551.             move.l              #$0004001A,-(sp)
  552.             moveq               #0,D0
  553.             dc.w                $A82A
  554.         EndM
  555.     ELSE
  556.         IMPORT_CFM_FUNCTION SGGetStorageSpaceRemaining
  557.     ENDIF
  558.  
  559. ;
  560. ; pascal ComponentResult SGGetTimeRemaining(SeqGrabComponent s, long *ticksLeft)
  561. ;
  562.     IF ¨ GENERATINGCFM THEN
  563.         Macro
  564.         _SGGetTimeRemaining
  565.             move.l              #$0004001B,-(sp)
  566.             moveq               #0,D0
  567.             dc.w                $A82A
  568.         EndM
  569.     ELSE
  570.         IMPORT_CFM_FUNCTION SGGetTimeRemaining
  571.     ENDIF
  572.  
  573. ;
  574. ; pascal ComponentResult SGGrabPict(SeqGrabComponent s, PicHandle *p, const Rect *bounds, short offscreenDepth, long grabPictFlags)
  575. ;
  576.     IF ¨ GENERATINGCFM THEN
  577.         Macro
  578.         _SGGrabPict
  579.             move.l              #$000E001C,-(sp)
  580.             moveq               #0,D0
  581.             dc.w                $A82A
  582.         EndM
  583.     ELSE
  584.         IMPORT_CFM_FUNCTION SGGrabPict
  585.     ENDIF
  586.  
  587. ;
  588. ; pascal ComponentResult SGGetLastMovieResID(SeqGrabComponent s, short *resID)
  589. ;
  590.     IF ¨ GENERATINGCFM THEN
  591.         Macro
  592.         _SGGetLastMovieResID
  593.             move.l              #$0004001D,-(sp)
  594.             moveq               #0,D0
  595.             dc.w                $A82A
  596.         EndM
  597.     ELSE
  598.         IMPORT_CFM_FUNCTION SGGetLastMovieResID
  599.     ENDIF
  600.  
  601. ;
  602. ; pascal ComponentResult SGSetFlags(SeqGrabComponent s, long sgFlags)
  603. ;
  604.     IF ¨ GENERATINGCFM THEN
  605.         Macro
  606.         _SGSetFlags
  607.             move.l              #$0004001E,-(sp)
  608.             moveq               #0,D0
  609.             dc.w                $A82A
  610.         EndM
  611.     ELSE
  612.         IMPORT_CFM_FUNCTION SGSetFlags
  613.     ENDIF
  614.  
  615. ;
  616. ; pascal ComponentResult SGGetFlags(SeqGrabComponent s, long *sgFlags)
  617. ;
  618.     IF ¨ GENERATINGCFM THEN
  619.         Macro
  620.         _SGGetFlags
  621.             move.l              #$0004001F,-(sp)
  622.             moveq               #0,D0
  623.             dc.w                $A82A
  624.         EndM
  625.     ELSE
  626.         IMPORT_CFM_FUNCTION SGGetFlags
  627.     ENDIF
  628.  
  629. ;
  630. ; pascal ComponentResult SGSetDataProc(SeqGrabComponent s, SGDataUPP proc, long refCon)
  631. ;
  632.     IF ¨ GENERATINGCFM THEN
  633.         Macro
  634.         _SGSetDataProc
  635.             move.l              #$00080020,-(sp)
  636.             moveq               #0,D0
  637.             dc.w                $A82A
  638.         EndM
  639.     ELSE
  640.         IMPORT_CFM_FUNCTION SGSetDataProc
  641.     ENDIF
  642.  
  643. ;
  644. ; pascal ComponentResult SGNewChannelFromComponent(SeqGrabComponent s, SGChannel *newChannel, Component sgChannelComponent)
  645. ;
  646.     IF ¨ GENERATINGCFM THEN
  647.         Macro
  648.         _SGNewChannelFromComponent
  649.             move.l              #$00080021,-(sp)
  650.             moveq               #0,D0
  651.             dc.w                $A82A
  652.         EndM
  653.     ELSE
  654.         IMPORT_CFM_FUNCTION SGNewChannelFromComponent
  655.     ENDIF
  656.  
  657. ;
  658. ; pascal ComponentResult SGDisposeDeviceList(SeqGrabComponent s, SGDeviceList list)
  659. ;
  660.     IF ¨ GENERATINGCFM THEN
  661.         Macro
  662.         _SGDisposeDeviceList
  663.             move.l              #$00040022,-(sp)
  664.             moveq               #0,D0
  665.             dc.w                $A82A
  666.         EndM
  667.     ELSE
  668.         IMPORT_CFM_FUNCTION SGDisposeDeviceList
  669.     ENDIF
  670.  
  671.     ENDIF
  672.     IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
  673. ;
  674. ; pascal ComponentResult SGAppendDeviceListToMenu(SeqGrabComponent s, SGDeviceList list, MenuHandle mh)
  675. ;
  676.     IF ¨ GENERATINGCFM THEN
  677.         Macro
  678.         _SGAppendDeviceListToMenu
  679.             move.l              #$00080023,-(sp)
  680.             moveq               #0,D0
  681.             dc.w                $A82A
  682.         EndM
  683.     ELSE
  684.         IMPORT_CFM_FUNCTION SGAppendDeviceListToMenu
  685.     ENDIF
  686.  
  687.     ENDIF
  688.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  689. ;
  690. ; pascal ComponentResult SGSetSettings(SeqGrabComponent s, UserData ud, long flags)
  691. ;
  692.     IF ¨ GENERATINGCFM THEN
  693.         Macro
  694.         _SGSetSettings
  695.             move.l              #$00080024,-(sp)
  696.             moveq               #0,D0
  697.             dc.w                $A82A
  698.         EndM
  699.     ELSE
  700.         IMPORT_CFM_FUNCTION SGSetSettings
  701.     ENDIF
  702.  
  703. ;
  704. ; pascal ComponentResult SGGetSettings(SeqGrabComponent s, UserData *ud, long flags)
  705. ;
  706.     IF ¨ GENERATINGCFM THEN
  707.         Macro
  708.         _SGGetSettings
  709.             move.l              #$00080025,-(sp)
  710.             moveq               #0,D0
  711.             dc.w                $A82A
  712.         EndM
  713.     ELSE
  714.         IMPORT_CFM_FUNCTION SGGetSettings
  715.     ENDIF
  716.  
  717. ;
  718. ; pascal ComponentResult SGGetIndChannel(SeqGrabComponent s, short index, SGChannel *ref, OSType *chanType)
  719. ;
  720.     IF ¨ GENERATINGCFM THEN
  721.         Macro
  722.         _SGGetIndChannel
  723.             move.l              #$000A0026,-(sp)
  724.             moveq               #0,D0
  725.             dc.w                $A82A
  726.         EndM
  727.     ELSE
  728.         IMPORT_CFM_FUNCTION SGGetIndChannel
  729.     ENDIF
  730.  
  731. ;
  732. ; pascal ComponentResult SGUpdate(SeqGrabComponent s, RgnHandle updateRgn)
  733. ;
  734.     IF ¨ GENERATINGCFM THEN
  735.         Macro
  736.         _SGUpdate
  737.             move.l              #$00040027,-(sp)
  738.             moveq               #0,D0
  739.             dc.w                $A82A
  740.         EndM
  741.     ELSE
  742.         IMPORT_CFM_FUNCTION SGUpdate
  743.     ENDIF
  744.  
  745. ;
  746. ; pascal ComponentResult SGGetPause(SeqGrabComponent s, Byte *paused)
  747. ;
  748.     IF ¨ GENERATINGCFM THEN
  749.         Macro
  750.         _SGGetPause
  751.             move.l              #$00040028,-(sp)
  752.             moveq               #0,D0
  753.             dc.w                $A82A
  754.         EndM
  755.     ELSE
  756.         IMPORT_CFM_FUNCTION SGGetPause
  757.     ENDIF
  758.  
  759. ;
  760. ; pascal ComponentResult SGSettingsDialog(SeqGrabComponent s, SGChannel c, short numPanels, Component *panelList, long flags, SGModalFilterUPP proc, long procRefNum)
  761. ;
  762.     IF ¨ GENERATINGCFM THEN
  763.         Macro
  764.         _SGSettingsDialog
  765.             move.l              #$00160029,-(sp)
  766.             moveq               #0,D0
  767.             dc.w                $A82A
  768.         EndM
  769.     ELSE
  770.         IMPORT_CFM_FUNCTION SGSettingsDialog
  771.     ENDIF
  772.  
  773. ;
  774. ; pascal ComponentResult SGGetAlignmentProc(SeqGrabComponent s, ICMAlignmentProcRecordPtr alignmentProc)
  775. ;
  776.     IF ¨ GENERATINGCFM THEN
  777.         Macro
  778.         _SGGetAlignmentProc
  779.             move.l              #$0004002A,-(sp)
  780.             moveq               #0,D0
  781.             dc.w                $A82A
  782.         EndM
  783.     ELSE
  784.         IMPORT_CFM_FUNCTION SGGetAlignmentProc
  785.     ENDIF
  786.  
  787. ;
  788. ; pascal ComponentResult SGSetChannelSettings(SeqGrabComponent s, SGChannel c, UserData ud, long flags)
  789. ;
  790.     IF ¨ GENERATINGCFM THEN
  791.         Macro
  792.         _SGSetChannelSettings
  793.             move.l              #$000C002B,-(sp)
  794.             moveq               #0,D0
  795.             dc.w                $A82A
  796.         EndM
  797.     ELSE
  798.         IMPORT_CFM_FUNCTION SGSetChannelSettings
  799.     ENDIF
  800.  
  801. ;
  802. ; pascal ComponentResult SGGetChannelSettings(SeqGrabComponent s, SGChannel c, UserData *ud, long flags)
  803. ;
  804.     IF ¨ GENERATINGCFM THEN
  805.         Macro
  806.         _SGGetChannelSettings
  807.             move.l              #$000C002C,-(sp)
  808.             moveq               #0,D0
  809.             dc.w                $A82A
  810.         EndM
  811.     ELSE
  812.         IMPORT_CFM_FUNCTION SGGetChannelSettings
  813.     ENDIF
  814.  
  815. ;
  816. ; pascal ComponentResult SGGetMode(SeqGrabComponent s, Boolean *previewMode, Boolean *recordMode)
  817. ;
  818.     IF ¨ GENERATINGCFM THEN
  819.         Macro
  820.         _SGGetMode
  821.             move.l              #$0008002D,-(sp)
  822.             moveq               #0,D0
  823.             dc.w                $A82A
  824.         EndM
  825.     ELSE
  826.         IMPORT_CFM_FUNCTION SGGetMode
  827.     ENDIF
  828.  
  829. ;
  830. ; pascal ComponentResult SGSetDataRef(SeqGrabComponent s, Handle dataRef, OSType dataRefType, long whereFlags)
  831. ;
  832.     IF ¨ GENERATINGCFM THEN
  833.         Macro
  834.         _SGSetDataRef
  835.             move.l              #$000C002E,-(sp)
  836.             moveq               #0,D0
  837.             dc.w                $A82A
  838.         EndM
  839.     ELSE
  840.         IMPORT_CFM_FUNCTION SGSetDataRef
  841.     ENDIF
  842.  
  843. ;
  844. ; pascal ComponentResult SGGetDataRef(SeqGrabComponent s, Handle *dataRef, OSType *dataRefType, long *whereFlags)
  845. ;
  846.     IF ¨ GENERATINGCFM THEN
  847.         Macro
  848.         _SGGetDataRef
  849.             move.l              #$000C002F,-(sp)
  850.             moveq               #0,D0
  851.             dc.w                $A82A
  852.         EndM
  853.     ELSE
  854.         IMPORT_CFM_FUNCTION SGGetDataRef
  855.     ENDIF
  856.  
  857. ;
  858. ; pascal ComponentResult SGNewOutput(SeqGrabComponent s, Handle dataRef, OSType dataRefType, long whereFlags, SGOutput *seqOutput)
  859. ;
  860.     IF ¨ GENERATINGCFM THEN
  861.         Macro
  862.         _SGNewOutput
  863.             move.l              #$00100030,-(sp)
  864.             moveq               #0,D0
  865.             dc.w                $A82A
  866.         EndM
  867.     ELSE
  868.         IMPORT_CFM_FUNCTION SGNewOutput
  869.     ENDIF
  870.  
  871. ;
  872. ; pascal ComponentResult SGDisposeOutput(SeqGrabComponent s, SGOutput seqOutput)
  873. ;
  874.     IF ¨ GENERATINGCFM THEN
  875.         Macro
  876.         _SGDisposeOutput
  877.             move.l              #$00040031,-(sp)
  878.             moveq               #0,D0
  879.             dc.w                $A82A
  880.         EndM
  881.     ELSE
  882.         IMPORT_CFM_FUNCTION SGDisposeOutput
  883.     ENDIF
  884.  
  885. ;
  886. ; pascal ComponentResult SGSetOutputFlags(SeqGrabComponent s, SGOutput seqOutput, long whereFlags)
  887. ;
  888.     IF ¨ GENERATINGCFM THEN
  889.         Macro
  890.         _SGSetOutputFlags
  891.             move.l              #$00080032,-(sp)
  892.             moveq               #0,D0
  893.             dc.w                $A82A
  894.         EndM
  895.     ELSE
  896.         IMPORT_CFM_FUNCTION SGSetOutputFlags
  897.     ENDIF
  898.  
  899. ;
  900. ; pascal ComponentResult SGSetChannelOutput(SeqGrabComponent s, SGChannel c, SGOutput seqOutput)
  901. ;
  902.     IF ¨ GENERATINGCFM THEN
  903.         Macro
  904.         _SGSetChannelOutput
  905.             move.l              #$00080033,-(sp)
  906.             moveq               #0,D0
  907.             dc.w                $A82A
  908.         EndM
  909.     ELSE
  910.         IMPORT_CFM_FUNCTION SGSetChannelOutput
  911.     ENDIF
  912.  
  913. ;
  914. ; pascal ComponentResult SGGetDataOutputStorageSpaceRemaining(SeqGrabComponent s, SGOutput seqOutput, unsigned long *space)
  915. ;
  916.     IF ¨ GENERATINGCFM THEN
  917.         Macro
  918.         _SGGetDataOutputStorageSpaceRemaining
  919.             move.l              #$00080034,-(sp)
  920.             moveq               #0,D0
  921.             dc.w                $A82A
  922.         EndM
  923.     ELSE
  924.         IMPORT_CFM_FUNCTION SGGetDataOutputStorageSpaceRemaining
  925.     ENDIF
  926.  
  927. ;
  928. ;    calls from Channel to seqGrab
  929. ;
  930. ;
  931. ; pascal ComponentResult SGWriteMovieData(SeqGrabComponent s, SGChannel c, Ptr p, long len, long *offset)
  932. ;
  933.     IF ¨ GENERATINGCFM THEN
  934.         Macro
  935.         _SGWriteMovieData
  936.             move.l              #$00100100,-(sp)
  937.             moveq               #0,D0
  938.             dc.w                $A82A
  939.         EndM
  940.     ELSE
  941.         IMPORT_CFM_FUNCTION SGWriteMovieData
  942.     ENDIF
  943.  
  944. ;
  945. ; pascal ComponentResult SGAddFrameReference(SeqGrabComponent s, SeqGrabFrameInfoPtr frameInfo)
  946. ;
  947.     IF ¨ GENERATINGCFM THEN
  948.         Macro
  949.         _SGAddFrameReference
  950.             move.l              #$00040101,-(sp)
  951.             moveq               #0,D0
  952.             dc.w                $A82A
  953.         EndM
  954.     ELSE
  955.         IMPORT_CFM_FUNCTION SGAddFrameReference
  956.     ENDIF
  957.  
  958. ;
  959. ; pascal ComponentResult SGGetNextFrameReference(SeqGrabComponent s, SeqGrabFrameInfoPtr frameInfo, TimeValue *frameDuration, long *frameNumber)
  960. ;
  961.     IF ¨ GENERATINGCFM THEN
  962.         Macro
  963.         _SGGetNextFrameReference
  964.             move.l              #$000C0102,-(sp)
  965.             moveq               #0,D0
  966.             dc.w                $A82A
  967.         EndM
  968.     ELSE
  969.         IMPORT_CFM_FUNCTION SGGetNextFrameReference
  970.     ENDIF
  971.  
  972. ;
  973. ; pascal ComponentResult SGGetTimeBase(SeqGrabComponent s, TimeBase *tb)
  974. ;
  975.     IF ¨ GENERATINGCFM THEN
  976.         Macro
  977.         _SGGetTimeBase
  978.             move.l              #$00040103,-(sp)
  979.             moveq               #0,D0
  980.             dc.w                $A82A
  981.         EndM
  982.     ELSE
  983.         IMPORT_CFM_FUNCTION SGGetTimeBase
  984.     ENDIF
  985.  
  986. ;
  987. ; pascal ComponentResult SGSortDeviceList(SeqGrabComponent s, SGDeviceList list)
  988. ;
  989.     IF ¨ GENERATINGCFM THEN
  990.         Macro
  991.         _SGSortDeviceList
  992.             move.l              #$00040104,-(sp)
  993.             moveq               #0,D0
  994.             dc.w                $A82A
  995.         EndM
  996.     ELSE
  997.         IMPORT_CFM_FUNCTION SGSortDeviceList
  998.     ENDIF
  999.  
  1000. ;
  1001. ; pascal ComponentResult SGAddMovieData(SeqGrabComponent s, SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType)
  1002. ;
  1003.     IF ¨ GENERATINGCFM THEN
  1004.         Macro
  1005.         _SGAddMovieData
  1006.             move.l              #$001A0105,-(sp)
  1007.             moveq               #0,D0
  1008.             dc.w                $A82A
  1009.         EndM
  1010.     ELSE
  1011.         IMPORT_CFM_FUNCTION SGAddMovieData
  1012.     ENDIF
  1013.  
  1014. ;
  1015. ; pascal ComponentResult SGChangedSource(SeqGrabComponent s, SGChannel c)
  1016. ;
  1017.     IF ¨ GENERATINGCFM THEN
  1018.         Macro
  1019.         _SGChangedSource
  1020.             move.l              #$00040106,-(sp)
  1021.             moveq               #0,D0
  1022.             dc.w                $A82A
  1023.         EndM
  1024.     ELSE
  1025.         IMPORT_CFM_FUNCTION SGChangedSource
  1026.     ENDIF
  1027.  
  1028. ; ** Sequence Grab CHANNEL Component Stuff **
  1029. ;
  1030. ; pascal ComponentResult SGSetChannelUsage(SGChannel c, long usage)
  1031. ;
  1032.     IF ¨ GENERATINGCFM THEN
  1033.         Macro
  1034.         _SGSetChannelUsage
  1035.             move.l              #$00040080,-(sp)
  1036.             moveq               #0,D0
  1037.             dc.w                $A82A
  1038.         EndM
  1039.     ELSE
  1040.         IMPORT_CFM_FUNCTION SGSetChannelUsage
  1041.     ENDIF
  1042.  
  1043. ;
  1044. ; pascal ComponentResult SGGetChannelUsage(SGChannel c, long *usage)
  1045. ;
  1046.     IF ¨ GENERATINGCFM THEN
  1047.         Macro
  1048.         _SGGetChannelUsage
  1049.             move.l              #$00040081,-(sp)
  1050.             moveq               #0,D0
  1051.             dc.w                $A82A
  1052.         EndM
  1053.     ELSE
  1054.         IMPORT_CFM_FUNCTION SGGetChannelUsage
  1055.     ENDIF
  1056.  
  1057. ;
  1058. ; pascal ComponentResult SGSetChannelBounds(SGChannel c, const Rect *bounds)
  1059. ;
  1060.     IF ¨ GENERATINGCFM THEN
  1061.         Macro
  1062.         _SGSetChannelBounds
  1063.             move.l              #$00040082,-(sp)
  1064.             moveq               #0,D0
  1065.             dc.w                $A82A
  1066.         EndM
  1067.     ELSE
  1068.         IMPORT_CFM_FUNCTION SGSetChannelBounds
  1069.     ENDIF
  1070.  
  1071. ;
  1072. ; pascal ComponentResult SGGetChannelBounds(SGChannel c, Rect *bounds)
  1073. ;
  1074.     IF ¨ GENERATINGCFM THEN
  1075.         Macro
  1076.         _SGGetChannelBounds
  1077.             move.l              #$00040083,-(sp)
  1078.             moveq               #0,D0
  1079.             dc.w                $A82A
  1080.         EndM
  1081.     ELSE
  1082.         IMPORT_CFM_FUNCTION SGGetChannelBounds
  1083.     ENDIF
  1084.  
  1085. ;
  1086. ; pascal ComponentResult SGSetChannelVolume(SGChannel c, short volume)
  1087. ;
  1088.     IF ¨ GENERATINGCFM THEN
  1089.         Macro
  1090.         _SGSetChannelVolume
  1091.             move.l              #$00020084,-(sp)
  1092.             moveq               #0,D0
  1093.             dc.w                $A82A
  1094.         EndM
  1095.     ELSE
  1096.         IMPORT_CFM_FUNCTION SGSetChannelVolume
  1097.     ENDIF
  1098.  
  1099. ;
  1100. ; pascal ComponentResult SGGetChannelVolume(SGChannel c, short *volume)
  1101. ;
  1102.     IF ¨ GENERATINGCFM THEN
  1103.         Macro
  1104.         _SGGetChannelVolume
  1105.             move.l              #$00040085,-(sp)
  1106.             moveq               #0,D0
  1107.             dc.w                $A82A
  1108.         EndM
  1109.     ELSE
  1110.         IMPORT_CFM_FUNCTION SGGetChannelVolume
  1111.     ENDIF
  1112.  
  1113. ;
  1114. ; pascal ComponentResult SGGetChannelInfo(SGChannel c, long *channelInfo)
  1115. ;
  1116.     IF ¨ GENERATINGCFM THEN
  1117.         Macro
  1118.         _SGGetChannelInfo
  1119.             move.l              #$00040086,-(sp)
  1120.             moveq               #0,D0
  1121.             dc.w                $A82A
  1122.         EndM
  1123.     ELSE
  1124.         IMPORT_CFM_FUNCTION SGGetChannelInfo
  1125.     ENDIF
  1126.  
  1127. ;
  1128. ; pascal ComponentResult SGSetChannelPlayFlags(SGChannel c, long playFlags)
  1129. ;
  1130.     IF ¨ GENERATINGCFM THEN
  1131.         Macro
  1132.         _SGSetChannelPlayFlags
  1133.             move.l              #$00040087,-(sp)
  1134.             moveq               #0,D0
  1135.             dc.w                $A82A
  1136.         EndM
  1137.     ELSE
  1138.         IMPORT_CFM_FUNCTION SGSetChannelPlayFlags
  1139.     ENDIF
  1140.  
  1141. ;
  1142. ; pascal ComponentResult SGGetChannelPlayFlags(SGChannel c, long *playFlags)
  1143. ;
  1144.     IF ¨ GENERATINGCFM THEN
  1145.         Macro
  1146.         _SGGetChannelPlayFlags
  1147.             move.l              #$00040088,-(sp)
  1148.             moveq               #0,D0
  1149.             dc.w                $A82A
  1150.         EndM
  1151.     ELSE
  1152.         IMPORT_CFM_FUNCTION SGGetChannelPlayFlags
  1153.     ENDIF
  1154.  
  1155. ;
  1156. ; pascal ComponentResult SGSetChannelMaxFrames(SGChannel c, long frameCount)
  1157. ;
  1158.     IF ¨ GENERATINGCFM THEN
  1159.         Macro
  1160.         _SGSetChannelMaxFrames
  1161.             move.l              #$00040089,-(sp)
  1162.             moveq               #0,D0
  1163.             dc.w                $A82A
  1164.         EndM
  1165.     ELSE
  1166.         IMPORT_CFM_FUNCTION SGSetChannelMaxFrames
  1167.     ENDIF
  1168.  
  1169. ;
  1170. ; pascal ComponentResult SGGetChannelMaxFrames(SGChannel c, long *frameCount)
  1171. ;
  1172.     IF ¨ GENERATINGCFM THEN
  1173.         Macro
  1174.         _SGGetChannelMaxFrames
  1175.             move.l              #$0004008A,-(sp)
  1176.             moveq               #0,D0
  1177.             dc.w                $A82A
  1178.         EndM
  1179.     ELSE
  1180.         IMPORT_CFM_FUNCTION SGGetChannelMaxFrames
  1181.     ENDIF
  1182.  
  1183. ;
  1184. ; pascal ComponentResult SGSetChannelRefCon(SGChannel c, long refCon)
  1185. ;
  1186.     IF ¨ GENERATINGCFM THEN
  1187.         Macro
  1188.         _SGSetChannelRefCon
  1189.             move.l              #$0004008B,-(sp)
  1190.             moveq               #0,D0
  1191.             dc.w                $A82A
  1192.         EndM
  1193.     ELSE
  1194.         IMPORT_CFM_FUNCTION SGSetChannelRefCon
  1195.     ENDIF
  1196.  
  1197. ;
  1198. ; pascal ComponentResult SGSetChannelClip(SGChannel c, RgnHandle theClip)
  1199. ;
  1200.     IF ¨ GENERATINGCFM THEN
  1201.         Macro
  1202.         _SGSetChannelClip
  1203.             move.l              #$0004008C,-(sp)
  1204.             moveq               #0,D0
  1205.             dc.w                $A82A
  1206.         EndM
  1207.     ELSE
  1208.         IMPORT_CFM_FUNCTION SGSetChannelClip
  1209.     ENDIF
  1210.  
  1211. ;
  1212. ; pascal ComponentResult SGGetChannelClip(SGChannel c, RgnHandle *theClip)
  1213. ;
  1214.     IF ¨ GENERATINGCFM THEN
  1215.         Macro
  1216.         _SGGetChannelClip
  1217.             move.l              #$0004008D,-(sp)
  1218.             moveq               #0,D0
  1219.             dc.w                $A82A
  1220.         EndM
  1221.     ELSE
  1222.         IMPORT_CFM_FUNCTION SGGetChannelClip
  1223.     ENDIF
  1224.  
  1225. ;
  1226. ; pascal ComponentResult SGGetChannelSampleDescription(SGChannel c, Handle sampleDesc)
  1227. ;
  1228.     IF ¨ GENERATINGCFM THEN
  1229.         Macro
  1230.         _SGGetChannelSampleDescription
  1231.             move.l              #$0004008E,-(sp)
  1232.             moveq               #0,D0
  1233.             dc.w                $A82A
  1234.         EndM
  1235.     ELSE
  1236.         IMPORT_CFM_FUNCTION SGGetChannelSampleDescription
  1237.     ENDIF
  1238.  
  1239. ;
  1240. ; pascal ComponentResult SGGetChannelDeviceList(SGChannel c, long selectionFlags, SGDeviceList *list)
  1241. ;
  1242.     IF ¨ GENERATINGCFM THEN
  1243.         Macro
  1244.         _SGGetChannelDeviceList
  1245.             move.l              #$0008008F,-(sp)
  1246.             moveq               #0,D0
  1247.             dc.w                $A82A
  1248.         EndM
  1249.     ELSE
  1250.         IMPORT_CFM_FUNCTION SGGetChannelDeviceList
  1251.     ENDIF
  1252.  
  1253. ;
  1254. ; pascal ComponentResult SGSetChannelDevice(SGChannel c, StringPtr name)
  1255. ;
  1256.     IF ¨ GENERATINGCFM THEN
  1257.         Macro
  1258.         _SGSetChannelDevice
  1259.             move.l              #$00040090,-(sp)
  1260.             moveq               #0,D0
  1261.             dc.w                $A82A
  1262.         EndM
  1263.     ELSE
  1264.         IMPORT_CFM_FUNCTION SGSetChannelDevice
  1265.     ENDIF
  1266.  
  1267. ;
  1268. ; pascal ComponentResult SGSetChannelMatrix(SGChannel c, const MatrixRecord *m)
  1269. ;
  1270.     IF ¨ GENERATINGCFM THEN
  1271.         Macro
  1272.         _SGSetChannelMatrix
  1273.             move.l              #$00040091,-(sp)
  1274.             moveq               #0,D0
  1275.             dc.w                $A82A
  1276.         EndM
  1277.     ELSE
  1278.         IMPORT_CFM_FUNCTION SGSetChannelMatrix
  1279.     ENDIF
  1280.  
  1281. ;
  1282. ; pascal ComponentResult SGGetChannelMatrix(SGChannel c, MatrixRecord *m)
  1283. ;
  1284.     IF ¨ GENERATINGCFM THEN
  1285.         Macro
  1286.         _SGGetChannelMatrix
  1287.             move.l              #$00040092,-(sp)
  1288.             moveq               #0,D0
  1289.             dc.w                $A82A
  1290.         EndM
  1291.     ELSE
  1292.         IMPORT_CFM_FUNCTION SGGetChannelMatrix
  1293.     ENDIF
  1294.  
  1295. ;
  1296. ; pascal ComponentResult SGGetChannelTimeScale(SGChannel c, TimeScale *scale)
  1297. ;
  1298.     IF ¨ GENERATINGCFM THEN
  1299.         Macro
  1300.         _SGGetChannelTimeScale
  1301.             move.l              #$00040093,-(sp)
  1302.             moveq               #0,D0
  1303.             dc.w                $A82A
  1304.         EndM
  1305.     ELSE
  1306.         IMPORT_CFM_FUNCTION SGGetChannelTimeScale
  1307.     ENDIF
  1308.  
  1309. ;
  1310. ; pascal ComponentResult SGChannelPutPicture(SGChannel c)
  1311. ;
  1312.     IF ¨ GENERATINGCFM THEN
  1313.         Macro
  1314.         _SGChannelPutPicture
  1315.             move.l              #$00000094,-(sp)
  1316.             moveq               #0,D0
  1317.             dc.w                $A82A
  1318.         EndM
  1319.     ELSE
  1320.         IMPORT_CFM_FUNCTION SGChannelPutPicture
  1321.     ENDIF
  1322.  
  1323. ;
  1324. ; pascal ComponentResult SGChannelSetRequestedDataRate(SGChannel c, long bytesPerSecond)
  1325. ;
  1326.     IF ¨ GENERATINGCFM THEN
  1327.         Macro
  1328.         _SGChannelSetRequestedDataRate
  1329.             move.l              #$00040095,-(sp)
  1330.             moveq               #0,D0
  1331.             dc.w                $A82A
  1332.         EndM
  1333.     ELSE
  1334.         IMPORT_CFM_FUNCTION SGChannelSetRequestedDataRate
  1335.     ENDIF
  1336.  
  1337. ;
  1338. ; pascal ComponentResult SGChannelGetRequestedDataRate(SGChannel c, long *bytesPerSecond)
  1339. ;
  1340.     IF ¨ GENERATINGCFM THEN
  1341.         Macro
  1342.         _SGChannelGetRequestedDataRate
  1343.             move.l              #$00040096,-(sp)
  1344.             moveq               #0,D0
  1345.             dc.w                $A82A
  1346.         EndM
  1347.     ELSE
  1348.         IMPORT_CFM_FUNCTION SGChannelGetRequestedDataRate
  1349.     ENDIF
  1350.  
  1351. ;
  1352. ; pascal ComponentResult SGChannelSetDataSourceName(SGChannel c, ConstStr255Param name, ScriptCode scriptTag)
  1353. ;
  1354.     IF ¨ GENERATINGCFM THEN
  1355.         Macro
  1356.         _SGChannelSetDataSourceName
  1357.             move.l              #$00060097,-(sp)
  1358.             moveq               #0,D0
  1359.             dc.w                $A82A
  1360.         EndM
  1361.     ELSE
  1362.         IMPORT_CFM_FUNCTION SGChannelSetDataSourceName
  1363.     ENDIF
  1364.  
  1365. ;
  1366. ; pascal ComponentResult SGChannelGetDataSourceName(SGChannel c, Str255 name, ScriptCode *scriptTag)
  1367. ;
  1368.     IF ¨ GENERATINGCFM THEN
  1369.         Macro
  1370.         _SGChannelGetDataSourceName
  1371.             move.l              #$00080098,-(sp)
  1372.             moveq               #0,D0
  1373.             dc.w                $A82A
  1374.         EndM
  1375.     ELSE
  1376.         IMPORT_CFM_FUNCTION SGChannelGetDataSourceName
  1377.     ENDIF
  1378.  
  1379. ;
  1380. ;    calls from seqGrab to Channel
  1381. ;
  1382. ;
  1383. ; pascal ComponentResult SGInitChannel(SGChannel c, SeqGrabComponent owner)
  1384. ;
  1385.     IF ¨ GENERATINGCFM THEN
  1386.         Macro
  1387.         _SGInitChannel
  1388.             move.l              #$00040180,-(sp)
  1389.             moveq               #0,D0
  1390.             dc.w                $A82A
  1391.         EndM
  1392.     ELSE
  1393.         IMPORT_CFM_FUNCTION SGInitChannel
  1394.     ENDIF
  1395.  
  1396. ;
  1397. ; pascal ComponentResult SGWriteSamples(SGChannel c, Movie m, AliasHandle theFile)
  1398. ;
  1399.     IF ¨ GENERATINGCFM THEN
  1400.         Macro
  1401.         _SGWriteSamples
  1402.             move.l              #$00080181,-(sp)
  1403.             moveq               #0,D0
  1404.             dc.w                $A82A
  1405.         EndM
  1406.     ELSE
  1407.         IMPORT_CFM_FUNCTION SGWriteSamples
  1408.     ENDIF
  1409.  
  1410. ;
  1411. ; pascal ComponentResult SGGetDataRate(SGChannel c, long *bytesPerSecond)
  1412. ;
  1413.     IF ¨ GENERATINGCFM THEN
  1414.         Macro
  1415.         _SGGetDataRate
  1416.             move.l              #$00040182,-(sp)
  1417.             moveq               #0,D0
  1418.             dc.w                $A82A
  1419.         EndM
  1420.     ELSE
  1421.         IMPORT_CFM_FUNCTION SGGetDataRate
  1422.     ENDIF
  1423.  
  1424. ;
  1425. ; pascal ComponentResult SGAlignChannelRect(SGChannel c, Rect *r)
  1426. ;
  1427.     IF ¨ GENERATINGCFM THEN
  1428.         Macro
  1429.         _SGAlignChannelRect
  1430.             move.l              #$00040183,-(sp)
  1431.             moveq               #0,D0
  1432.             dc.w                $A82A
  1433.         EndM
  1434.     ELSE
  1435.         IMPORT_CFM_FUNCTION SGAlignChannelRect
  1436.     ENDIF
  1437.  
  1438. ;
  1439. ;    Dorky dialog panel calls
  1440. ;
  1441. ;
  1442. ; pascal ComponentResult SGPanelGetDitl(SeqGrabComponent s, Handle *ditl)
  1443. ;
  1444.     IF ¨ GENERATINGCFM THEN
  1445.         Macro
  1446.         _SGPanelGetDitl
  1447.             move.l              #$00040200,-(sp)
  1448.             moveq               #0,D0
  1449.             dc.w                $A82A
  1450.         EndM
  1451.     ELSE
  1452.         IMPORT_CFM_FUNCTION SGPanelGetDitl
  1453.     ENDIF
  1454.  
  1455. ;
  1456. ; pascal ComponentResult SGPanelGetTitle(SeqGrabComponent s, Str255 title)
  1457. ;
  1458.     IF ¨ GENERATINGCFM THEN
  1459.         Macro
  1460.         _SGPanelGetTitle
  1461.             move.l              #$00040201,-(sp)
  1462.             moveq               #0,D0
  1463.             dc.w                $A82A
  1464.         EndM
  1465.     ELSE
  1466.         IMPORT_CFM_FUNCTION SGPanelGetTitle
  1467.     ENDIF
  1468.  
  1469. ;
  1470. ; pascal ComponentResult SGPanelCanRun(SeqGrabComponent s, SGChannel c)
  1471. ;
  1472.     IF ¨ GENERATINGCFM THEN
  1473.         Macro
  1474.         _SGPanelCanRun
  1475.             move.l              #$00040202,-(sp)
  1476.             moveq               #0,D0
  1477.             dc.w                $A82A
  1478.         EndM
  1479.     ELSE
  1480.         IMPORT_CFM_FUNCTION SGPanelCanRun
  1481.     ENDIF
  1482.  
  1483. ;
  1484. ; pascal ComponentResult SGPanelInstall(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset)
  1485. ;
  1486.     IF ¨ GENERATINGCFM THEN
  1487.         Macro
  1488.         _SGPanelInstall
  1489.             move.l              #$000A0203,-(sp)
  1490.             moveq               #0,D0
  1491.             dc.w                $A82A
  1492.         EndM
  1493.     ELSE
  1494.         IMPORT_CFM_FUNCTION SGPanelInstall
  1495.     ENDIF
  1496.  
  1497. ;
  1498. ; pascal ComponentResult SGPanelEvent(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset, EventRecord *theEvent, short *itemHit, Boolean *handled)
  1499. ;
  1500.     IF ¨ GENERATINGCFM THEN
  1501.         Macro
  1502.         _SGPanelEvent
  1503.             move.l              #$00160204,-(sp)
  1504.             moveq               #0,D0
  1505.             dc.w                $A82A
  1506.         EndM
  1507.     ELSE
  1508.         IMPORT_CFM_FUNCTION SGPanelEvent
  1509.     ENDIF
  1510.  
  1511. ;
  1512. ; pascal ComponentResult SGPanelItem(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset, short itemNum)
  1513. ;
  1514.     IF ¨ GENERATINGCFM THEN
  1515.         Macro
  1516.         _SGPanelItem
  1517.             move.l              #$000C0205,-(sp)
  1518.             moveq               #0,D0
  1519.             dc.w                $A82A
  1520.         EndM
  1521.     ELSE
  1522.         IMPORT_CFM_FUNCTION SGPanelItem
  1523.     ENDIF
  1524.  
  1525. ;
  1526. ; pascal ComponentResult SGPanelRemove(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset)
  1527. ;
  1528.     IF ¨ GENERATINGCFM THEN
  1529.         Macro
  1530.         _SGPanelRemove
  1531.             move.l              #$000A0206,-(sp)
  1532.             moveq               #0,D0
  1533.             dc.w                $A82A
  1534.         EndM
  1535.     ELSE
  1536.         IMPORT_CFM_FUNCTION SGPanelRemove
  1537.     ENDIF
  1538.  
  1539. ;
  1540. ; pascal ComponentResult SGPanelSetGrabber(SeqGrabComponent s, SeqGrabComponent sg)
  1541. ;
  1542.     IF ¨ GENERATINGCFM THEN
  1543.         Macro
  1544.         _SGPanelSetGrabber
  1545.             move.l              #$00040207,-(sp)
  1546.             moveq               #0,D0
  1547.             dc.w                $A82A
  1548.         EndM
  1549.     ELSE
  1550.         IMPORT_CFM_FUNCTION SGPanelSetGrabber
  1551.     ENDIF
  1552.  
  1553. ;
  1554. ; pascal ComponentResult SGPanelSetResFile(SeqGrabComponent s, short resRef)
  1555. ;
  1556.     IF ¨ GENERATINGCFM THEN
  1557.         Macro
  1558.         _SGPanelSetResFile
  1559.             move.l              #$00020208,-(sp)
  1560.             moveq               #0,D0
  1561.             dc.w                $A82A
  1562.         EndM
  1563.     ELSE
  1564.         IMPORT_CFM_FUNCTION SGPanelSetResFile
  1565.     ENDIF
  1566.  
  1567. ;
  1568. ; pascal ComponentResult SGPanelGetSettings(SeqGrabComponent s, SGChannel c, UserData *ud, long flags)
  1569. ;
  1570.     IF ¨ GENERATINGCFM THEN
  1571.         Macro
  1572.         _SGPanelGetSettings
  1573.             move.l              #$000C0209,-(sp)
  1574.             moveq               #0,D0
  1575.             dc.w                $A82A
  1576.         EndM
  1577.     ELSE
  1578.         IMPORT_CFM_FUNCTION SGPanelGetSettings
  1579.     ENDIF
  1580.  
  1581. ;
  1582. ; pascal ComponentResult SGPanelSetSettings(SeqGrabComponent s, SGChannel c, UserData ud, long flags)
  1583. ;
  1584.     IF ¨ GENERATINGCFM THEN
  1585.         Macro
  1586.         _SGPanelSetSettings
  1587.             move.l              #$000C020A,-(sp)
  1588.             moveq               #0,D0
  1589.             dc.w                $A82A
  1590.         EndM
  1591.     ELSE
  1592.         IMPORT_CFM_FUNCTION SGPanelSetSettings
  1593.     ENDIF
  1594.  
  1595. ;
  1596. ; pascal ComponentResult SGPanelValidateInput(SeqGrabComponent s, Boolean *ok)
  1597. ;
  1598.     IF ¨ GENERATINGCFM THEN
  1599.         Macro
  1600.         _SGPanelValidateInput
  1601.             move.l              #$0004020B,-(sp)
  1602.             moveq               #0,D0
  1603.             dc.w                $A82A
  1604.         EndM
  1605.     ELSE
  1606.         IMPORT_CFM_FUNCTION SGPanelValidateInput
  1607.     ENDIF
  1608.  
  1609. ;
  1610. ; pascal ComponentResult SGPanelSetEventFilter(SeqGrabComponent s, SGModalFilterUPP proc, long refCon)
  1611. ;
  1612.     IF ¨ GENERATINGCFM THEN
  1613.         Macro
  1614.         _SGPanelSetEventFilter
  1615.             move.l              #$0008020C,-(sp)
  1616.             moveq               #0,D0
  1617.             dc.w                $A82A
  1618.         EndM
  1619.     ELSE
  1620.         IMPORT_CFM_FUNCTION SGPanelSetEventFilter
  1621.     ENDIF
  1622.  
  1623. ; ** Sequence Grab VIDEO CHANNEL Component Stuff **
  1624. ;
  1625. ;    Video stuff
  1626. ;
  1627. SGCompressInfo            RECORD 0
  1628. buffer                     ds.l    1                ; offset: $0 (0)
  1629. bufferSize                 ds.l    1                ; offset: $4 (4)
  1630. similarity                 ds.b    1                ; offset: $8 (8)
  1631. reserved                 ds.b    1                ; offset: $9 (9)
  1632. sizeof                     EQU *                    ; size:   $A (10)
  1633.                         ENDR
  1634. VideoBottles            RECORD 0
  1635. procCount                 ds.w    1                ; offset: $0 (0)
  1636. grabProc                 ds.l    1                ; offset: $2 (2)
  1637. grabCompleteProc         ds.l    1                ; offset: $6 (6)
  1638. displayProc                 ds.l    1                ; offset: $A (10)
  1639. compressProc             ds.l    1                ; offset: $E (14)
  1640. compressCompleteProc     ds.l    1                ; offset: $12 (18)
  1641. addFrameProc             ds.l    1                ; offset: $16 (22)
  1642. transferFrameProc         ds.l    1                ; offset: $1A (26)
  1643. grabCompressCompleteProc  ds.l    1                ; offset: $1E (30)
  1644. displayCompressProc         ds.l    1                ; offset: $22 (34)
  1645. sizeof                     EQU *                    ; size:   $26 (38)
  1646.                         ENDR
  1647. ;
  1648. ; pascal ComponentResult SGGetSrcVideoBounds(SGChannel c, Rect *r)
  1649. ;
  1650.     IF ¨ GENERATINGCFM THEN
  1651.         Macro
  1652.         _SGGetSrcVideoBounds
  1653.             move.l              #$00040100,-(sp)
  1654.             moveq               #0,D0
  1655.             dc.w                $A82A
  1656.         EndM
  1657.     ELSE
  1658.         IMPORT_CFM_FUNCTION SGGetSrcVideoBounds
  1659.     ENDIF
  1660.  
  1661. ;
  1662. ; pascal ComponentResult SGSetVideoRect(SGChannel c, const Rect *r)
  1663. ;
  1664.     IF ¨ GENERATINGCFM THEN
  1665.         Macro
  1666.         _SGSetVideoRect
  1667.             move.l              #$00040101,-(sp)
  1668.             moveq               #0,D0
  1669.             dc.w                $A82A
  1670.         EndM
  1671.     ELSE
  1672.         IMPORT_CFM_FUNCTION SGSetVideoRect
  1673.     ENDIF
  1674.  
  1675. ;
  1676. ; pascal ComponentResult SGGetVideoRect(SGChannel c, Rect *r)
  1677. ;
  1678.     IF ¨ GENERATINGCFM THEN
  1679.         Macro
  1680.         _SGGetVideoRect
  1681.             move.l              #$00040102,-(sp)
  1682.             moveq               #0,D0
  1683.             dc.w                $A82A
  1684.         EndM
  1685.     ELSE
  1686.         IMPORT_CFM_FUNCTION SGGetVideoRect
  1687.     ENDIF
  1688.  
  1689. ;
  1690. ; pascal ComponentResult SGGetVideoCompressorType(SGChannel c, OSType *compressorType)
  1691. ;
  1692.     IF ¨ GENERATINGCFM THEN
  1693.         Macro
  1694.         _SGGetVideoCompressorType
  1695.             move.l              #$00040103,-(sp)
  1696.             moveq               #0,D0
  1697.             dc.w                $A82A
  1698.         EndM
  1699.     ELSE
  1700.         IMPORT_CFM_FUNCTION SGGetVideoCompressorType
  1701.     ENDIF
  1702.  
  1703. ;
  1704. ; pascal ComponentResult SGSetVideoCompressorType(SGChannel c, OSType compressorType)
  1705. ;
  1706.     IF ¨ GENERATINGCFM THEN
  1707.         Macro
  1708.         _SGSetVideoCompressorType
  1709.             move.l              #$00040104,-(sp)
  1710.             moveq               #0,D0
  1711.             dc.w                $A82A
  1712.         EndM
  1713.     ELSE
  1714.         IMPORT_CFM_FUNCTION SGSetVideoCompressorType
  1715.     ENDIF
  1716.  
  1717. ;
  1718. ; pascal ComponentResult SGSetVideoCompressor(SGChannel c, short depth, CompressorComponent compressor, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate)
  1719. ;
  1720.     IF ¨ GENERATINGCFM THEN
  1721.         Macro
  1722.         _SGSetVideoCompressor
  1723.             move.l              #$00120105,-(sp)
  1724.             moveq               #0,D0
  1725.             dc.w                $A82A
  1726.         EndM
  1727.     ELSE
  1728.         IMPORT_CFM_FUNCTION SGSetVideoCompressor
  1729.     ENDIF
  1730.  
  1731. ;
  1732. ; pascal ComponentResult SGGetVideoCompressor(SGChannel c, short *depth, CompressorComponent *compressor, CodecQ *spatialQuality, CodecQ *temporalQuality, long *keyFrameRate)
  1733. ;
  1734.     IF ¨ GENERATINGCFM THEN
  1735.         Macro
  1736.         _SGGetVideoCompressor
  1737.             move.l              #$00140106,-(sp)
  1738.             moveq               #0,D0
  1739.             dc.w                $A82A
  1740.         EndM
  1741.     ELSE
  1742.         IMPORT_CFM_FUNCTION SGGetVideoCompressor
  1743.     ENDIF
  1744.  
  1745. ;
  1746. ; pascal ComponentInstance SGGetVideoDigitizerComponent(SGChannel c)
  1747. ;
  1748.     IF ¨ GENERATINGCFM THEN
  1749.         Macro
  1750.         _SGGetVideoDigitizerComponent
  1751.             move.l              #$00000107,-(sp)
  1752.             moveq               #0,D0
  1753.             dc.w                $A82A
  1754.         EndM
  1755.     ELSE
  1756.         IMPORT_CFM_FUNCTION SGGetVideoDigitizerComponent
  1757.     ENDIF
  1758.  
  1759. ;
  1760. ; pascal ComponentResult SGSetVideoDigitizerComponent(SGChannel c, ComponentInstance vdig)
  1761. ;
  1762.     IF ¨ GENERATINGCFM THEN
  1763.         Macro
  1764.         _SGSetVideoDigitizerComponent
  1765.             move.l              #$00040108,-(sp)
  1766.             moveq               #0,D0
  1767.             dc.w                $A82A
  1768.         EndM
  1769.     ELSE
  1770.         IMPORT_CFM_FUNCTION SGSetVideoDigitizerComponent
  1771.     ENDIF
  1772.  
  1773. ;
  1774. ; pascal ComponentResult SGVideoDigitizerChanged(SGChannel c)
  1775. ;
  1776.     IF ¨ GENERATINGCFM THEN
  1777.         Macro
  1778.         _SGVideoDigitizerChanged
  1779.             move.l              #$00000109,-(sp)
  1780.             moveq               #0,D0
  1781.             dc.w                $A82A
  1782.         EndM
  1783.     ELSE
  1784.         IMPORT_CFM_FUNCTION SGVideoDigitizerChanged
  1785.     ENDIF
  1786.  
  1787. ;
  1788. ; pascal ComponentResult SGSetVideoBottlenecks(SGChannel c, VideoBottles *vb)
  1789. ;
  1790.     IF ¨ GENERATINGCFM THEN
  1791.         Macro
  1792.         _SGSetVideoBottlenecks
  1793.             move.l              #$0004010A,-(sp)
  1794.             moveq               #0,D0
  1795.             dc.w                $A82A
  1796.         EndM
  1797.     ELSE
  1798.         IMPORT_CFM_FUNCTION SGSetVideoBottlenecks
  1799.     ENDIF
  1800.  
  1801. ;
  1802. ; pascal ComponentResult SGGetVideoBottlenecks(SGChannel c, VideoBottles *vb)
  1803. ;
  1804.     IF ¨ GENERATINGCFM THEN
  1805.         Macro
  1806.         _SGGetVideoBottlenecks
  1807.             move.l              #$0004010B,-(sp)
  1808.             moveq               #0,D0
  1809.             dc.w                $A82A
  1810.         EndM
  1811.     ELSE
  1812.         IMPORT_CFM_FUNCTION SGGetVideoBottlenecks
  1813.     ENDIF
  1814.  
  1815. ;
  1816. ; pascal ComponentResult SGGrabFrame(SGChannel c, short bufferNum)
  1817. ;
  1818.     IF ¨ GENERATINGCFM THEN
  1819.         Macro
  1820.         _SGGrabFrame
  1821.             move.l              #$0002010C,-(sp)
  1822.             moveq               #0,D0
  1823.             dc.w                $A82A
  1824.         EndM
  1825.     ELSE
  1826.         IMPORT_CFM_FUNCTION SGGrabFrame
  1827.     ENDIF
  1828.  
  1829. ;
  1830. ; pascal ComponentResult SGGrabFrameComplete(SGChannel c, short bufferNum, Boolean *done)
  1831. ;
  1832.     IF ¨ GENERATINGCFM THEN
  1833.         Macro
  1834.         _SGGrabFrameComplete
  1835.             move.l              #$0006010D,-(sp)
  1836.             moveq               #0,D0
  1837.             dc.w                $A82A
  1838.         EndM
  1839.     ELSE
  1840.         IMPORT_CFM_FUNCTION SGGrabFrameComplete
  1841.     ENDIF
  1842.  
  1843. ;
  1844. ; pascal ComponentResult SGDisplayFrame(SGChannel c, short bufferNum, const MatrixRecord *mp, RgnHandle clipRgn)
  1845. ;
  1846.     IF ¨ GENERATINGCFM THEN
  1847.         Macro
  1848.         _SGDisplayFrame
  1849.             move.l              #$000A010E,-(sp)
  1850.             moveq               #0,D0
  1851.             dc.w                $A82A
  1852.         EndM
  1853.     ELSE
  1854.         IMPORT_CFM_FUNCTION SGDisplayFrame
  1855.     ENDIF
  1856.  
  1857. ;
  1858. ; pascal ComponentResult SGCompressFrame(SGChannel c, short bufferNum)
  1859. ;
  1860.     IF ¨ GENERATINGCFM THEN
  1861.         Macro
  1862.         _SGCompressFrame
  1863.             move.l              #$0002010F,-(sp)
  1864.             moveq               #0,D0
  1865.             dc.w                $A82A
  1866.         EndM
  1867.     ELSE
  1868.         IMPORT_CFM_FUNCTION SGCompressFrame
  1869.     ENDIF
  1870.  
  1871. ;
  1872. ; pascal ComponentResult SGCompressFrameComplete(SGChannel c, short bufferNum, Boolean *done, SGCompressInfo *ci)
  1873. ;
  1874.     IF ¨ GENERATINGCFM THEN
  1875.         Macro
  1876.         _SGCompressFrameComplete
  1877.             move.l              #$000A0110,-(sp)
  1878.             moveq               #0,D0
  1879.             dc.w                $A82A
  1880.         EndM
  1881.     ELSE
  1882.         IMPORT_CFM_FUNCTION SGCompressFrameComplete
  1883.     ENDIF
  1884.  
  1885. ;
  1886. ; pascal ComponentResult SGAddFrame(SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale, const SGCompressInfo *ci)
  1887. ;
  1888.     IF ¨ GENERATINGCFM THEN
  1889.         Macro
  1890.         _SGAddFrame
  1891.             move.l              #$000E0111,-(sp)
  1892.             moveq               #0,D0
  1893.             dc.w                $A82A
  1894.         EndM
  1895.     ELSE
  1896.         IMPORT_CFM_FUNCTION SGAddFrame
  1897.     ENDIF
  1898.  
  1899. ;
  1900. ; pascal ComponentResult SGTransferFrameForCompress(SGChannel c, short bufferNum, const MatrixRecord *mp, RgnHandle clipRgn)
  1901. ;
  1902.     IF ¨ GENERATINGCFM THEN
  1903.         Macro
  1904.         _SGTransferFrameForCompress
  1905.             move.l              #$000A0112,-(sp)
  1906.             moveq               #0,D0
  1907.             dc.w                $A82A
  1908.         EndM
  1909.     ELSE
  1910.         IMPORT_CFM_FUNCTION SGTransferFrameForCompress
  1911.     ENDIF
  1912.  
  1913. ;
  1914. ; pascal ComponentResult SGSetCompressBuffer(SGChannel c, short depth, const Rect *compressSize)
  1915. ;
  1916.     IF ¨ GENERATINGCFM THEN
  1917.         Macro
  1918.         _SGSetCompressBuffer
  1919.             move.l              #$00060113,-(sp)
  1920.             moveq               #0,D0
  1921.             dc.w                $A82A
  1922.         EndM
  1923.     ELSE
  1924.         IMPORT_CFM_FUNCTION SGSetCompressBuffer
  1925.     ENDIF
  1926.  
  1927. ;
  1928. ; pascal ComponentResult SGGetCompressBuffer(SGChannel c, short *depth, Rect *compressSize)
  1929. ;
  1930.     IF ¨ GENERATINGCFM THEN
  1931.         Macro
  1932.         _SGGetCompressBuffer
  1933.             move.l              #$00080114,-(sp)
  1934.             moveq               #0,D0
  1935.             dc.w                $A82A
  1936.         EndM
  1937.     ELSE
  1938.         IMPORT_CFM_FUNCTION SGGetCompressBuffer
  1939.     ENDIF
  1940.  
  1941. ;
  1942. ; pascal ComponentResult SGGetBufferInfo(SGChannel c, short bufferNum, PixMapHandle *bufferPM, Rect *bufferRect, GWorldPtr *compressBuffer, Rect *compressBufferRect)
  1943. ;
  1944.     IF ¨ GENERATINGCFM THEN
  1945.         Macro
  1946.         _SGGetBufferInfo
  1947.             move.l              #$00120115,-(sp)
  1948.             moveq               #0,D0
  1949.             dc.w                $A82A
  1950.         EndM
  1951.     ELSE
  1952.         IMPORT_CFM_FUNCTION SGGetBufferInfo
  1953.     ENDIF
  1954.  
  1955. ;
  1956. ; pascal ComponentResult SGSetUseScreenBuffer(SGChannel c, Boolean useScreenBuffer)
  1957. ;
  1958.     IF ¨ GENERATINGCFM THEN
  1959.         Macro
  1960.         _SGSetUseScreenBuffer
  1961.             move.l              #$00020116,-(sp)
  1962.             moveq               #0,D0
  1963.             dc.w                $A82A
  1964.         EndM
  1965.     ELSE
  1966.         IMPORT_CFM_FUNCTION SGSetUseScreenBuffer
  1967.     ENDIF
  1968.  
  1969. ;
  1970. ; pascal ComponentResult SGGetUseScreenBuffer(SGChannel c, Boolean *useScreenBuffer)
  1971. ;
  1972.     IF ¨ GENERATINGCFM THEN
  1973.         Macro
  1974.         _SGGetUseScreenBuffer
  1975.             move.l              #$00040117,-(sp)
  1976.             moveq               #0,D0
  1977.             dc.w                $A82A
  1978.         EndM
  1979.     ELSE
  1980.         IMPORT_CFM_FUNCTION SGGetUseScreenBuffer
  1981.     ENDIF
  1982.  
  1983. ;
  1984. ; pascal ComponentResult SGGrabCompressComplete(SGChannel c, Boolean *done, SGCompressInfo *ci, TimeRecord *tr)
  1985. ;
  1986.     IF ¨ GENERATINGCFM THEN
  1987.         Macro
  1988.         _SGGrabCompressComplete
  1989.             move.l              #$000C0118,-(sp)
  1990.             moveq               #0,D0
  1991.             dc.w                $A82A
  1992.         EndM
  1993.     ELSE
  1994.         IMPORT_CFM_FUNCTION SGGrabCompressComplete
  1995.     ENDIF
  1996.  
  1997. ;
  1998. ; pascal ComponentResult SGDisplayCompress(SGChannel c, Ptr dataPtr, ImageDescriptionHandle desc, MatrixRecord *mp, RgnHandle clipRgn)
  1999. ;
  2000.     IF ¨ GENERATINGCFM THEN
  2001.         Macro
  2002.         _SGDisplayCompress
  2003.             move.l              #$00100119,-(sp)
  2004.             moveq               #0,D0
  2005.             dc.w                $A82A
  2006.         EndM
  2007.     ELSE
  2008.         IMPORT_CFM_FUNCTION SGDisplayCompress
  2009.     ENDIF
  2010.  
  2011. ;
  2012. ; pascal ComponentResult SGSetFrameRate(SGChannel c, Fixed frameRate)
  2013. ;
  2014.     IF ¨ GENERATINGCFM THEN
  2015.         Macro
  2016.         _SGSetFrameRate
  2017.             move.l              #$0004011A,-(sp)
  2018.             moveq               #0,D0
  2019.             dc.w                $A82A
  2020.         EndM
  2021.     ELSE
  2022.         IMPORT_CFM_FUNCTION SGSetFrameRate
  2023.     ENDIF
  2024.  
  2025. ;
  2026. ; pascal ComponentResult SGGetFrameRate(SGChannel c, Fixed *frameRate)
  2027. ;
  2028.     IF ¨ GENERATINGCFM THEN
  2029.         Macro
  2030.         _SGGetFrameRate
  2031.             move.l              #$0004011B,-(sp)
  2032.             moveq               #0,D0
  2033.             dc.w                $A82A
  2034.         EndM
  2035.     ELSE
  2036.         IMPORT_CFM_FUNCTION SGGetFrameRate
  2037.     ENDIF
  2038.  
  2039. ; ** Sequence Grab SOUND CHANNEL Component Stuff **
  2040. ;
  2041. ;    Sound stuff
  2042. ;
  2043. ;
  2044. ; pascal ComponentResult SGSetSoundInputDriver(SGChannel c, ConstStr255Param driverName)
  2045. ;
  2046.     IF ¨ GENERATINGCFM THEN
  2047.         Macro
  2048.         _SGSetSoundInputDriver
  2049.             move.l              #$00040100,-(sp)
  2050.             moveq               #0,D0
  2051.             dc.w                $A82A
  2052.         EndM
  2053.     ELSE
  2054.         IMPORT_CFM_FUNCTION SGSetSoundInputDriver
  2055.     ENDIF
  2056.  
  2057. ;
  2058. ; pascal long SGGetSoundInputDriver(SGChannel c)
  2059. ;
  2060.     IF ¨ GENERATINGCFM THEN
  2061.         Macro
  2062.         _SGGetSoundInputDriver
  2063.             move.l              #$00000101,-(sp)
  2064.             moveq               #0,D0
  2065.             dc.w                $A82A
  2066.         EndM
  2067.     ELSE
  2068.         IMPORT_CFM_FUNCTION SGGetSoundInputDriver
  2069.     ENDIF
  2070.  
  2071. ;
  2072. ; pascal ComponentResult SGSoundInputDriverChanged(SGChannel c)
  2073. ;
  2074.     IF ¨ GENERATINGCFM THEN
  2075.         Macro
  2076.         _SGSoundInputDriverChanged
  2077.             move.l              #$00000102,-(sp)
  2078.             moveq               #0,D0
  2079.             dc.w                $A82A
  2080.         EndM
  2081.     ELSE
  2082.         IMPORT_CFM_FUNCTION SGSoundInputDriverChanged
  2083.     ENDIF
  2084.  
  2085. ;
  2086. ; pascal ComponentResult SGSetSoundRecordChunkSize(SGChannel c, long seconds)
  2087. ;
  2088.     IF ¨ GENERATINGCFM THEN
  2089.         Macro
  2090.         _SGSetSoundRecordChunkSize
  2091.             move.l              #$00040103,-(sp)
  2092.             moveq               #0,D0
  2093.             dc.w                $A82A
  2094.         EndM
  2095.     ELSE
  2096.         IMPORT_CFM_FUNCTION SGSetSoundRecordChunkSize
  2097.     ENDIF
  2098.  
  2099. ;
  2100. ; pascal long SGGetSoundRecordChunkSize(SGChannel c)
  2101. ;
  2102.     IF ¨ GENERATINGCFM THEN
  2103.         Macro
  2104.         _SGGetSoundRecordChunkSize
  2105.             move.l              #$00000104,-(sp)
  2106.             moveq               #0,D0
  2107.             dc.w                $A82A
  2108.         EndM
  2109.     ELSE
  2110.         IMPORT_CFM_FUNCTION SGGetSoundRecordChunkSize
  2111.     ENDIF
  2112.  
  2113. ;
  2114. ; pascal ComponentResult SGSetSoundInputRate(SGChannel c, Fixed rate)
  2115. ;
  2116.     IF ¨ GENERATINGCFM THEN
  2117.         Macro
  2118.         _SGSetSoundInputRate
  2119.             move.l              #$00040105,-(sp)
  2120.             moveq               #0,D0
  2121.             dc.w                $A82A
  2122.         EndM
  2123.     ELSE
  2124.         IMPORT_CFM_FUNCTION SGSetSoundInputRate
  2125.     ENDIF
  2126.  
  2127. ;
  2128. ; pascal Fixed SGGetSoundInputRate(SGChannel c)
  2129. ;
  2130.     IF ¨ GENERATINGCFM THEN
  2131.         Macro
  2132.         _SGGetSoundInputRate
  2133.             move.l              #$00000106,-(sp)
  2134.             moveq               #0,D0
  2135.             dc.w                $A82A
  2136.         EndM
  2137.     ELSE
  2138.         IMPORT_CFM_FUNCTION SGGetSoundInputRate
  2139.     ENDIF
  2140.  
  2141. ;
  2142. ; pascal ComponentResult SGSetSoundInputParameters(SGChannel c, short sampleSize, short numChannels, OSType compressionType)
  2143. ;
  2144.     IF ¨ GENERATINGCFM THEN
  2145.         Macro
  2146.         _SGSetSoundInputParameters
  2147.             move.l              #$00080107,-(sp)
  2148.             moveq               #0,D0
  2149.             dc.w                $A82A
  2150.         EndM
  2151.     ELSE
  2152.         IMPORT_CFM_FUNCTION SGSetSoundInputParameters
  2153.     ENDIF
  2154.  
  2155. ;
  2156. ; pascal ComponentResult SGGetSoundInputParameters(SGChannel c, short *sampleSize, short *numChannels, OSType *compressionType)
  2157. ;
  2158.     IF ¨ GENERATINGCFM THEN
  2159.         Macro
  2160.         _SGGetSoundInputParameters
  2161.             move.l              #$000C0108,-(sp)
  2162.             moveq               #0,D0
  2163.             dc.w                $A82A
  2164.         EndM
  2165.     ELSE
  2166.         IMPORT_CFM_FUNCTION SGGetSoundInputParameters
  2167.     ENDIF
  2168.  
  2169.  
  2170. sgChannelAtom                    EQU        'chan'
  2171. sgChannelSettingsAtom            EQU        'ctom'
  2172. sgChannelDescription            EQU        'cdsc'
  2173. sgChannelSettings                EQU        'cset'
  2174.  
  2175. sgDeviceNameType                EQU        'name'
  2176. sgUsageType                        EQU        'use '
  2177. sgPlayFlagsType                    EQU        'plyf'
  2178. sgClipType                        EQU        'clip'
  2179. sgMatrixType                    EQU        'mtrx'
  2180. sgVolumeType                    EQU        'volu'
  2181.  
  2182. sgPanelSettingsAtom                EQU        'ptom'
  2183. sgPanelDescription                EQU        'pdsc'
  2184. sgPanelSettings                    EQU        'pset'
  2185.  
  2186. sgcSoundCompressionType            EQU        'scmp'
  2187. sgcSoundSampleRateType            EQU        'srat'
  2188. sgcSoundChannelCountType        EQU        'schn'
  2189. sgcSoundSampleSizeType            EQU        'ssiz'
  2190. sgcSoundInputType                EQU        'sinp'
  2191. sgcSoundGainType                EQU        'gain'
  2192.  
  2193. sgcVideoHueType                    EQU        'hue '
  2194. sgcVideoSaturationType            EQU        'satr'
  2195. sgcVideoContrastType            EQU        'trst'
  2196. sgcVideoSharpnessType            EQU        'shrp'
  2197. sgcVideoBrigtnessType            EQU        'brit'
  2198. sgcVideoBlackLevelType            EQU        'blkl'
  2199. sgcVideoWhiteLevelType            EQU        'whtl'
  2200. sgcVideoInputType                EQU        'vinp'
  2201. sgcVideoFormatType                EQU        'vstd'
  2202. sgcVideoFilterType                EQU        'vflt'
  2203. sgcVideoRectType                EQU        'vrct'
  2204. sgVideoDigitizerType            EQU        'vdig'
  2205.  
  2206. kSGInitializeSelect                EQU        $01
  2207. kSGSetDataOutputSelect            EQU        $02
  2208. kSGGetDataOutputSelect            EQU        $03
  2209. kSGSetGWorldSelect                EQU        $04
  2210. kSGGetGWorldSelect                EQU        $05
  2211. kSGNewChannelSelect                EQU        $06
  2212. kSGDisposeChannelSelect            EQU        $07
  2213. kSGStartPreviewSelect            EQU        $10
  2214. kSGStartRecordSelect            EQU        $11
  2215. kSGIdleSelect                    EQU        $12
  2216. kSGStopSelect                    EQU        $13
  2217. kSGPauseSelect                    EQU        $14
  2218. kSGPrepareSelect                EQU        $15
  2219. kSGReleaseSelect                EQU        $16
  2220. kSGGetMovieSelect                EQU        $17
  2221. kSGSetMaximumRecordTimeSelect    EQU        $18
  2222. kSGGetMaximumRecordTimeSelect    EQU        $19
  2223. kSGGetStorageSpaceRemainingSelect EQU    $1A
  2224. kSGGetTimeRemainingSelect        EQU        $1B
  2225. kSGGrabPictSelect                EQU        $1C
  2226. kSGGetLastMovieResIDSelect        EQU        $1D
  2227. kSGSetFlagsSelect                EQU        $1E
  2228. kSGGetFlagsSelect                EQU        $1F
  2229. kSGSetDataProcSelect            EQU        $20
  2230. kSGNewChannelFromComponentSelect EQU    $21
  2231. kSGDisposeDeviceListSelect        EQU        $22
  2232. kSGAppendDeviceListToMenuSelect    EQU        $23
  2233. kSGSetSettingsSelect            EQU        $24
  2234. kSGGetSettingsSelect            EQU        $25
  2235. kSGGetIndChannelSelect            EQU        $26
  2236. kSGUpdateSelect                    EQU        $27
  2237. kSGGetPauseSelect                EQU        $28
  2238. kSGSettingsDialogSelect            EQU        $29
  2239. kSGGetAlignmentProcSelect        EQU        $2A
  2240. kSGSetChannelSettingsSelect        EQU        $2B
  2241. kSGGetChannelSettingsSelect        EQU        $2C
  2242. kSGGetModeSelect                EQU        $2D
  2243. kSGSetDataRefSelect                EQU        $2E
  2244. kSGGetDataRefSelect                EQU        $2F
  2245. kSGNewOutputSelect                EQU        $30
  2246. kSGDisposeOutputSelect            EQU        $31
  2247. kSGSetOutputFlagsSelect            EQU        $32
  2248. kSGSetChannelOutputSelect        EQU        $33
  2249. kSGGetDataOutputStorageSpaceRemainingSelect EQU $34
  2250. kSGWriteMovieDataSelect            EQU        $0100
  2251. kSGAddFrameReferenceSelect        EQU        $0101
  2252. kSGGetNextFrameReferenceSelect    EQU        $0102
  2253. kSGGetTimeBaseSelect            EQU        $0103
  2254. kSGSortDeviceListSelect            EQU        $0104
  2255. kSGAddMovieDataSelect            EQU        $0105
  2256. kSGChangedSourceSelect            EQU        $0106
  2257. kSGCSetChannelUsageSelect        EQU        $80
  2258. kSGCGetChannelUsageSelect        EQU        $81
  2259. kSGCSetChannelBoundsSelect        EQU        $82
  2260. kSGCGetChannelBoundsSelect        EQU        $83
  2261. kSGCSetChannelVolumeSelect        EQU        $84
  2262. kSGCGetChannelVolumeSelect        EQU        $85
  2263. kSGCGetChannelInfoSelect        EQU        $86
  2264. kSGCSetChannelPlayFlagsSelect    EQU        $87
  2265. kSGCGetChannelPlayFlagsSelect    EQU        $88
  2266. kSGCSetChannelMaxFramesSelect    EQU        $89
  2267. kSGCGetChannelMaxFramesSelect    EQU        $8A
  2268. kSGCSetChannelRefConSelect        EQU        $8B
  2269. kSGCSetChannelClipSelect        EQU        $8C
  2270. kSGCGetChannelClipSelect        EQU        $8D
  2271. kSGCGetChannelSampleDescriptionSelect EQU $8E
  2272. kSGCGetChannelDeviceListSelect    EQU        $8F
  2273. kSGCSetChannelDeviceSelect        EQU        $90
  2274. kSGCSetChannelMatrixSelect        EQU        $91
  2275. kSGCGetChannelMatrixSelect        EQU        $92
  2276. kSGCGetChannelTimeScaleSelect    EQU        $93
  2277. kSGCChannelPutPictureSelect        EQU        $94
  2278. kSGCChannelSetRequestedDataRateSelect EQU $95
  2279. kSGCChannelGetRequestedDataRateSelect EQU $96
  2280. kSGCChannelSetDataSourceNameSelect EQU    $97
  2281. kSGCChannelGetDataSourceNameSelect EQU    $98
  2282. kSGCInitChannelSelect            EQU        $0180
  2283. kSGCWriteSamplesSelect            EQU        $0181
  2284. kSGCGetDataRateSelect            EQU        $0182
  2285. kSGCAlignChannelRectSelect        EQU        $0183
  2286. kSGCPanelGetDitlSelect            EQU        $0200
  2287. kSGCPanelGetTitleSelect            EQU        $0201
  2288. kSGCPanelCanRunSelect            EQU        $0202
  2289. kSGCPanelInstallSelect            EQU        $0203
  2290. kSGCPanelEventSelect            EQU        $0204
  2291. kSGCPanelItemSelect                EQU        $0205
  2292. kSGCPanelRemoveSelect            EQU        $0206
  2293. kSGCPanelSetGrabberSelect        EQU        $0207
  2294. kSGCPanelSetResFileSelect        EQU        $0208
  2295. kSGCPanelGetSettingsSelect        EQU        $0209
  2296. kSGCPanelSetSettingsSelect        EQU        $020A
  2297. kSGCPanelValidateInputSelect    EQU        $020B
  2298. kSGCPanelSetEventFilterSelect    EQU        $020C
  2299. kSGCGetSrcVideoBoundsSelect        EQU        $0100
  2300. kSGCSetVideoRectSelect            EQU        $0101
  2301. kSGCGetVideoRectSelect            EQU        $0102
  2302. kSGCGetVideoCompressorTypeSelect EQU    $0103
  2303. kSGCSetVideoCompressorTypeSelect EQU    $0104
  2304. kSGCSetVideoCompressorSelect    EQU        $0105
  2305. kSGCGetVideoCompressorSelect    EQU        $0106
  2306. kSGCGetVideoDigitizerComponentSelect EQU $0107
  2307. kSGCSetVideoDigitizerComponentSelect EQU $0108
  2308. kSGCVideoDigitizerChangedSelect    EQU        $0109
  2309. kSGCSetVideoBottlenecksSelect    EQU        $010A
  2310. kSGCGetVideoBottlenecksSelect    EQU        $010B
  2311. kSGCGrabFrameSelect                EQU        $010C
  2312. kSGCGrabFrameCompleteSelect        EQU        $010D
  2313. kSGCDisplayFrameSelect            EQU        $010E
  2314. kSGCCompressFrameSelect            EQU        $010F
  2315. kSGCCompressFrameCompleteSelect    EQU        $0110
  2316. kSGCAddFrameSelect                EQU        $0111
  2317. kSGCTransferFrameForCompressSelect EQU    $0112
  2318. kSGCSetCompressBufferSelect        EQU        $0113
  2319. kSGCGetCompressBufferSelect        EQU        $0114
  2320. kSGCGetBufferInfoSelect            EQU        $0115
  2321. kSGCSetUseScreenBufferSelect    EQU        $0116
  2322. kSGCGetUseScreenBufferSelect    EQU        $0117
  2323. kSGCGrabCompressCompleteSelect    EQU        $0118
  2324. kSGCDisplayCompressSelect        EQU        $0119
  2325. kSGCSetFrameRateSelect            EQU        $011A
  2326. kSGCGetFrameRateSelect            EQU        $011B
  2327. kSGCSetSoundInputDriverSelect    EQU        $0100
  2328. kSGCGetSoundInputDriverSelect    EQU        $0101
  2329. kSGCSoundInputDriverChangedSelect EQU    $0102
  2330. kSGCSetSoundRecordChunkSizeSelect EQU    $0103
  2331. kSGCGetSoundRecordChunkSizeSelect EQU    $0104
  2332. kSGCSetSoundInputRateSelect        EQU        $0105
  2333. kSGCGetSoundInputRateSelect        EQU        $0106
  2334. kSGCSetSoundInputParametersSelect EQU    $0107
  2335. kSGCGetSoundInputParametersSelect EQU    $0108
  2336. ;  Standard type for video digitizers 
  2337.  
  2338. videoDigitizerComponentType        EQU        'vdig'
  2339. vdigInterfaceRev                EQU        2
  2340. ;  Input Format Standards 
  2341.  
  2342. ntscIn                            EQU        0                    ; current input format 
  2343. currentIn                        EQU        0                    ; ntsc input format 
  2344. palIn                            EQU        1                    ; pal input format 
  2345. secamIn                            EQU        2                    ; secam input format 
  2346. ntscReallyIn                    EQU        3                    ; ntsc input format 
  2347. ;  Input Formats 
  2348.  
  2349. compositeIn                        EQU        0                    ; input is composite format 
  2350. sVideoIn                        EQU        1                    ; input is sVideo format 
  2351. rgbComponentIn                    EQU        2                    ; input is rgb component format 
  2352. rgbComponentSyncIn                EQU        3                    ; input is rgb component format (sync on green?)
  2353. yuvComponentIn                    EQU        4                    ; input is yuv component format 
  2354. yuvComponentSyncIn                EQU        5                    ; input is yuv component format (sync on green?) 
  2355. tvTunerIn                        EQU        6
  2356. ;  Video Digitizer PlayThru States 
  2357.  
  2358. vdPlayThruOff                    EQU        0
  2359. vdPlayThruOn                    EQU        1
  2360. ;  Input Color Space Modes 
  2361.  
  2362. vdDigitizerBW                    EQU        0                    ; black and white 
  2363. vdDigitizerRGB                    EQU        1                    ; rgb color 
  2364. ;  Phase Lock Loop Modes 
  2365.  
  2366. vdBroadcastMode                    EQU        0                    ; Broadcast / Laser Disk video mode 
  2367. vdVTRMode                        EQU        1                    ; VCR / Magnetic media mode 
  2368. ;  Field Select Options 
  2369.  
  2370. vdUseAnyField                    EQU        0                    ; Digitizers choice on field use 
  2371. vdUseOddField                    EQU        1                    ; Use odd field for half size vert and smaller 
  2372. vdUseEvenField                    EQU        2                    ; Use even field for half size vert and smaller 
  2373. ;  vdig types 
  2374.  
  2375. vdTypeBasic                        EQU        0                    ; basic, no clipping 
  2376. vdTypeAlpha                        EQU        1                    ; supports clipping with alpha channel 
  2377. vdTypeMask                        EQU        2                    ; supports clipping with mask plane 
  2378. vdTypeKey                        EQU        3                    ; supports clipping with key color(s) 
  2379. ;  Digitizer Input Capability/Current Flags    
  2380.  
  2381. digiInDoesNTSC                    EQU        $00000001            ; digitizer supports NTSC input format 
  2382. digiInDoesPAL                    EQU        $00000002            ; digitizer supports PAL input format 
  2383. digiInDoesSECAM                    EQU        $00000004            ; digitizer supports SECAM input format 
  2384. digiInDoesGenLock                EQU        $00000080            ; digitizer does genlock 
  2385. digiInDoesComposite                EQU        $00000100            ; digitizer supports composite input type 
  2386. digiInDoesSVideo                EQU        $00000200            ; digitizer supports S-Video input type 
  2387. digiInDoesComponent                EQU        $00000400            ; digitizer supports component = rgb, input type 
  2388. digiInVTR_Broadcast                EQU        $00000800            ; digitizer can differentiate between the two 
  2389. digiInDoesColor                    EQU        $00001000            ; digitizer supports color 
  2390. digiInDoesBW                    EQU        $00002000            ; digitizer supports black & white 
  2391.                                                             ; Digitizer Input Current Flags = these are valid only during active operating conditions,    
  2392. digiInSignalLock                EQU        $80000000            ; digitizer detects input signal is locked, this bit = horiz lock || vertical lock 
  2393. ;  Digitizer Output Capability/Current Flags 
  2394.  
  2395. digiOutDoes1                    EQU        $00000001            ; digitizer supports 1 bit pixels 
  2396. digiOutDoes2                    EQU        $00000002            ; digitizer supports 2 bit pixels 
  2397. digiOutDoes4                    EQU        $00000004            ; digitizer supports 4 bit pixels 
  2398. digiOutDoes8                    EQU        $00000008            ; digitizer supports 8 bit pixels 
  2399. digiOutDoes16                    EQU        $00000010            ; digitizer supports 16 bit pixels 
  2400. digiOutDoes32                    EQU        $00000020            ; digitizer supports 32 bit pixels 
  2401. digiOutDoesDither                EQU        $00000040            ; digitizer dithers in indexed modes 
  2402. digiOutDoesStretch                EQU        $00000080            ; digitizer can arbitrarily stretch 
  2403. digiOutDoesShrink                EQU        $00000100            ; digitizer can arbitrarily shrink 
  2404. digiOutDoesMask                    EQU        $00000200            ; digitizer can mask to clipping regions 
  2405. digiOutDoesDouble                EQU        $00000800            ; digitizer can stretch to exactly double size 
  2406. digiOutDoesQuad                    EQU        $00001000            ; digitizer can stretch exactly quadruple size 
  2407. digiOutDoesQuarter                EQU        $00002000            ; digitizer can shrink to exactly quarter size 
  2408. digiOutDoesSixteenth            EQU        $00004000            ; digitizer can shrink to exactly sixteenth size 
  2409. digiOutDoesRotate                EQU        $00008000            ; digitizer supports rotate transformations 
  2410. digiOutDoesHorizFlip            EQU        $00010000            ; digitizer supports horizontal flips Sx < 0 
  2411. digiOutDoesVertFlip                EQU        $00020000            ; digitizer supports vertical flips Sy < 0 
  2412. digiOutDoesSkew                    EQU        $00040000            ; digitizer supports skew = shear,twist, 
  2413. digiOutDoesBlend                EQU        $00080000
  2414. digiOutDoesWarp                    EQU        $00100000
  2415. digiOutDoesHW_DMA                EQU        $00200000            ; digitizer not constrained to local device 
  2416. digiOutDoesHWPlayThru            EQU        $00400000            ; digitizer doesn't need time to play thru 
  2417. digiOutDoesILUT                    EQU        $00800000            ; digitizer does inverse LUT for index modes 
  2418. digiOutDoesKeyColor                EQU        $01000000            ; digitizer does key color functions too 
  2419. digiOutDoesAsyncGrabs            EQU        $02000000            ; digitizer supports async grabs 
  2420. digiOutDoesUnreadableScreenBits    EQU        $04000000            ; playthru doesn't generate readable bits on screen
  2421. digiOutDoesCompress                EQU        $08000000            ; supports alternate output data types 
  2422. digiOutDoesCompressOnly            EQU        $10000000            ; can't provide raw frames anywhere 
  2423. digiOutDoesPlayThruDuringCompress EQU    $20000000            ; digi can do playthru while providing compressed data 
  2424. ;  Types 
  2425. ; typedef ComponentInstance             VideoDigitizerComponent
  2426.  
  2427. ; typedef ComponentResult                 VideoDigitizerError
  2428.  
  2429. DigitizerInfo            RECORD 0
  2430. vdigType                 ds.w    1                ; offset: $0 (0)
  2431. inputCapabilityFlags     ds.l    1                ; offset: $2 (2)
  2432. outputCapabilityFlags     ds.l    1                ; offset: $6 (6)
  2433. inputCurrentFlags         ds.l    1                ; offset: $A (10)
  2434. outputCurrentFlags         ds.l    1                ; offset: $E (14)
  2435. slot                     ds.w    1                ; offset: $12 (18)        ;  temporary for connection purposes 
  2436. gdh                         ds.l    1                ; offset: $14 (20)        ;  temporary for digitizers that have preferred screen 
  2437. maskgdh                     ds.l    1                ; offset: $18 (24)        ;  temporary for digitizers that have mask planes 
  2438. minDestHeight             ds.w    1                ; offset: $1C (28)        ;  Smallest resizable height 
  2439. minDestWidth             ds.w    1                ; offset: $1E (30)        ;  Smallest resizable width 
  2440. maxDestHeight             ds.w    1                ; offset: $20 (32)        ;  Largest resizable height 
  2441. maxDestWidth             ds.w    1                ; offset: $22 (34)        ;  Largest resizable height 
  2442. blendLevels                 ds.w    1                ; offset: $24 (36)        ;  Number of blend levels supported (2 if 1 bit mask) 
  2443. reserved                 ds.l    1                ; offset: $26 (38)        ;  reserved 
  2444. sizeof                     EQU *                    ; size:   $2A (42)
  2445.                         ENDR
  2446. VdigType                RECORD 0
  2447. digType                     ds.l    1                ; offset: $0 (0)
  2448. reserved                 ds.l    1                ; offset: $4 (4)
  2449. sizeof                     EQU *                    ; size:   $8 (8)
  2450.                         ENDR
  2451. VdigTypeList            RECORD 0
  2452. count                     ds.w    1                ; offset: $0 (0)
  2453. list                     ds        VdigType        ; offset: $2 (2) <-- really an array of length one
  2454. sizeof                     EQU *                    ; size:   $A (10)
  2455.                         ENDR
  2456. VdigBufferRec            RECORD 0
  2457. dest                     ds.l    1                ; offset: $0 (0)
  2458. location                 ds        Point            ; offset: $4 (4)
  2459. reserved                 ds.l    1                ; offset: $8 (8)
  2460. sizeof                     EQU *                    ; size:   $C (12)
  2461.                         ENDR
  2462. VdigBufferRecList        RECORD 0
  2463. count                     ds.w    1                ; offset: $0 (0)
  2464. matrix                     ds.l    1                ; offset: $2 (2)
  2465. mask                     ds.l    1                ; offset: $6 (6)
  2466. list                     ds        VdigBufferRec    ; offset: $A (10) <-- really an array of length one
  2467. sizeof                     EQU *                    ; size:   $16 (22)
  2468.                         ENDR
  2469. ; typedef struct VdigBufferRecList *    VdigBufferRecListPtr
  2470.  
  2471. ; typedef VdigBufferRecListPtr *        VdigBufferRecListHandle
  2472.  
  2473. VDCompressionList        RECORD 0
  2474. codec                     ds.l    1                ; offset: $0 (0)
  2475. cType                     ds.l    1                ; offset: $4 (4)
  2476. typeName                 ds        Str63            ; offset: $8 (8)
  2477. name                     ds        Str63            ; offset: $48 (72)
  2478. formatFlags                 ds.l    1                ; offset: $88 (136)
  2479. compressFlags             ds.l    1                ; offset: $8C (140)
  2480. reserved                 ds.l    1                ; offset: $90 (144)
  2481. sizeof                     EQU *                    ; size:   $94 (148)
  2482.                         ENDR
  2483. ; typedef struct VDCompressionList *    VDCompressionListPtr
  2484.  
  2485. ; typedef VDCompressionListPtr *        VDCompressionListHandle
  2486.  
  2487.  
  2488. dmaDepth1                        EQU        1
  2489. dmaDepth2                        EQU        2
  2490. dmaDepth4                        EQU        4
  2491. dmaDepth8                        EQU        8
  2492. dmaDepth16                        EQU        16
  2493. dmaDepth32                        EQU        32
  2494. dmaDepth2Gray                    EQU        64
  2495. dmaDepth4Gray                    EQU        128
  2496. dmaDepth8Gray                    EQU        256
  2497.  
  2498. kVDIGControlledFrameRate        EQU        -1
  2499. ;  number of vdig calls
  2500.  
  2501. kvdigSelectors                    EQU        86
  2502. ;
  2503. ; pascal VideoDigitizerError VDGetMaxSrcRect(VideoDigitizerComponent ci, short inputStd, Rect *maxSrcRect)
  2504. ;
  2505.     IF ¨ GENERATINGCFM THEN
  2506.         Macro
  2507.         _VDGetMaxSrcRect
  2508.             move.l              #$00060001,-(sp)
  2509.             moveq               #0,D0
  2510.             dc.w                $A82A
  2511.         EndM
  2512.     ELSE
  2513.         IMPORT_CFM_FUNCTION VDGetMaxSrcRect
  2514.     ENDIF
  2515.  
  2516. ;
  2517. ; pascal VideoDigitizerError VDGetActiveSrcRect(VideoDigitizerComponent ci, short inputStd, Rect *activeSrcRect)
  2518. ;
  2519.     IF ¨ GENERATINGCFM THEN
  2520.         Macro
  2521.         _VDGetActiveSrcRect
  2522.             move.l              #$00060002,-(sp)
  2523.             moveq               #0,D0
  2524.             dc.w                $A82A
  2525.         EndM
  2526.     ELSE
  2527.         IMPORT_CFM_FUNCTION VDGetActiveSrcRect
  2528.     ENDIF
  2529.  
  2530. ;
  2531. ; pascal VideoDigitizerError VDSetDigitizerRect(VideoDigitizerComponent ci, Rect *digitizerRect)
  2532. ;
  2533.     IF ¨ GENERATINGCFM THEN
  2534.         Macro
  2535.         _VDSetDigitizerRect
  2536.             move.l              #$00040003,-(sp)
  2537.             moveq               #0,D0
  2538.             dc.w                $A82A
  2539.         EndM
  2540.     ELSE
  2541.         IMPORT_CFM_FUNCTION VDSetDigitizerRect
  2542.     ENDIF
  2543.  
  2544. ;
  2545. ; pascal VideoDigitizerError VDGetDigitizerRect(VideoDigitizerComponent ci, Rect *digitizerRect)
  2546. ;
  2547.     IF ¨ GENERATINGCFM THEN
  2548.         Macro
  2549.         _VDGetDigitizerRect
  2550.             move.l              #$00040004,-(sp)
  2551.             moveq               #0,D0
  2552.             dc.w                $A82A
  2553.         EndM
  2554.     ELSE
  2555.         IMPORT_CFM_FUNCTION VDGetDigitizerRect
  2556.     ENDIF
  2557.  
  2558. ;
  2559. ; pascal VideoDigitizerError VDGetVBlankRect(VideoDigitizerComponent ci, short inputStd, Rect *vBlankRect)
  2560. ;
  2561.     IF ¨ GENERATINGCFM THEN
  2562.         Macro
  2563.         _VDGetVBlankRect
  2564.             move.l              #$00060005,-(sp)
  2565.             moveq               #0,D0
  2566.             dc.w                $A82A
  2567.         EndM
  2568.     ELSE
  2569.         IMPORT_CFM_FUNCTION VDGetVBlankRect
  2570.     ENDIF
  2571.  
  2572. ;
  2573. ; pascal VideoDigitizerError VDGetMaskPixMap(VideoDigitizerComponent ci, PixMapHandle maskPixMap)
  2574. ;
  2575.     IF ¨ GENERATINGCFM THEN
  2576.         Macro
  2577.         _VDGetMaskPixMap
  2578.             move.l              #$00040006,-(sp)
  2579.             moveq               #0,D0
  2580.             dc.w                $A82A
  2581.         EndM
  2582.     ELSE
  2583.         IMPORT_CFM_FUNCTION VDGetMaskPixMap
  2584.     ENDIF
  2585.  
  2586. ;
  2587. ; pascal VideoDigitizerError VDGetPlayThruDestination(VideoDigitizerComponent ci, PixMapHandle *dest, Rect *destRect, MatrixRecord *m, RgnHandle *mask)
  2588. ;
  2589.     IF ¨ GENERATINGCFM THEN
  2590.         Macro
  2591.         _VDGetPlayThruDestination
  2592.             move.l              #$00100008,-(sp)
  2593.             moveq               #0,D0
  2594.             dc.w                $A82A
  2595.         EndM
  2596.     ELSE
  2597.         IMPORT_CFM_FUNCTION VDGetPlayThruDestination
  2598.     ENDIF
  2599.  
  2600. ;
  2601. ; pascal VideoDigitizerError VDUseThisCLUT(VideoDigitizerComponent ci, CTabHandle colorTableHandle)
  2602. ;
  2603.     IF ¨ GENERATINGCFM THEN
  2604.         Macro
  2605.         _VDUseThisCLUT
  2606.             move.l              #$00040009,-(sp)
  2607.             moveq               #0,D0
  2608.             dc.w                $A82A
  2609.         EndM
  2610.     ELSE
  2611.         IMPORT_CFM_FUNCTION VDUseThisCLUT
  2612.     ENDIF
  2613.  
  2614. ;
  2615. ; pascal VideoDigitizerError VDSetInputGammaValue(VideoDigitizerComponent ci, Fixed channel1, Fixed channel2, Fixed channel3)
  2616. ;
  2617.     IF ¨ GENERATINGCFM THEN
  2618.         Macro
  2619.         _VDSetInputGammaValue
  2620.             move.l              #$000C000A,-(sp)
  2621.             moveq               #0,D0
  2622.             dc.w                $A82A
  2623.         EndM
  2624.     ELSE
  2625.         IMPORT_CFM_FUNCTION VDSetInputGammaValue
  2626.     ENDIF
  2627.  
  2628. ;
  2629. ; pascal VideoDigitizerError VDGetInputGammaValue(VideoDigitizerComponent ci, Fixed *channel1, Fixed *channel2, Fixed *channel3)
  2630. ;
  2631.     IF ¨ GENERATINGCFM THEN
  2632.         Macro
  2633.         _VDGetInputGammaValue
  2634.             move.l              #$000C000B,-(sp)
  2635.             moveq               #0,D0
  2636.             dc.w                $A82A
  2637.         EndM
  2638.     ELSE
  2639.         IMPORT_CFM_FUNCTION VDGetInputGammaValue
  2640.     ENDIF
  2641.  
  2642. ;
  2643. ; pascal VideoDigitizerError VDSetBrightness(VideoDigitizerComponent ci, unsigned short *brightness)
  2644. ;
  2645.     IF ¨ GENERATINGCFM THEN
  2646.         Macro
  2647.         _VDSetBrightness
  2648.             move.l              #$0004000C,-(sp)
  2649.             moveq               #0,D0
  2650.             dc.w                $A82A
  2651.         EndM
  2652.     ELSE
  2653.         IMPORT_CFM_FUNCTION VDSetBrightness
  2654.     ENDIF
  2655.  
  2656. ;
  2657. ; pascal VideoDigitizerError VDGetBrightness(VideoDigitizerComponent ci, unsigned short *brightness)
  2658. ;
  2659.     IF ¨ GENERATINGCFM THEN
  2660.         Macro
  2661.         _VDGetBrightness
  2662.             move.l              #$0004000D,-(sp)
  2663.             moveq               #0,D0
  2664.             dc.w                $A82A
  2665.         EndM
  2666.     ELSE
  2667.         IMPORT_CFM_FUNCTION VDGetBrightness
  2668.     ENDIF
  2669.  
  2670. ;
  2671. ; pascal VideoDigitizerError VDSetContrast(VideoDigitizerComponent ci, unsigned short *contrast)
  2672. ;
  2673.     IF ¨ GENERATINGCFM THEN
  2674.         Macro
  2675.         _VDSetContrast
  2676.             move.l              #$0004000E,-(sp)
  2677.             moveq               #0,D0
  2678.             dc.w                $A82A
  2679.         EndM
  2680.     ELSE
  2681.         IMPORT_CFM_FUNCTION VDSetContrast
  2682.     ENDIF
  2683.  
  2684. ;
  2685. ; pascal VideoDigitizerError VDSetHue(VideoDigitizerComponent ci, unsigned short *hue)
  2686. ;
  2687.     IF ¨ GENERATINGCFM THEN
  2688.         Macro
  2689.         _VDSetHue
  2690.             move.l              #$0004000F,-(sp)
  2691.             moveq               #0,D0
  2692.             dc.w                $A82A
  2693.         EndM
  2694.     ELSE
  2695.         IMPORT_CFM_FUNCTION VDSetHue
  2696.     ENDIF
  2697.  
  2698. ;
  2699. ; pascal VideoDigitizerError VDSetSharpness(VideoDigitizerComponent ci, unsigned short *sharpness)
  2700. ;
  2701.     IF ¨ GENERATINGCFM THEN
  2702.         Macro
  2703.         _VDSetSharpness
  2704.             move.l              #$00040010,-(sp)
  2705.             moveq               #0,D0
  2706.             dc.w                $A82A
  2707.         EndM
  2708.     ELSE
  2709.         IMPORT_CFM_FUNCTION VDSetSharpness
  2710.     ENDIF
  2711.  
  2712. ;
  2713. ; pascal VideoDigitizerError VDSetSaturation(VideoDigitizerComponent ci, unsigned short *saturation)
  2714. ;
  2715.     IF ¨ GENERATINGCFM THEN
  2716.         Macro
  2717.         _VDSetSaturation
  2718.             move.l              #$00040011,-(sp)
  2719.             moveq               #0,D0
  2720.             dc.w                $A82A
  2721.         EndM
  2722.     ELSE
  2723.         IMPORT_CFM_FUNCTION VDSetSaturation
  2724.     ENDIF
  2725.  
  2726. ;
  2727. ; pascal VideoDigitizerError VDGetContrast(VideoDigitizerComponent ci, unsigned short *contrast)
  2728. ;
  2729.     IF ¨ GENERATINGCFM THEN
  2730.         Macro
  2731.         _VDGetContrast
  2732.             move.l              #$00040012,-(sp)
  2733.             moveq               #0,D0
  2734.             dc.w                $A82A
  2735.         EndM
  2736.     ELSE
  2737.         IMPORT_CFM_FUNCTION VDGetContrast
  2738.     ENDIF
  2739.  
  2740. ;
  2741. ; pascal VideoDigitizerError VDGetHue(VideoDigitizerComponent ci, unsigned short *hue)
  2742. ;
  2743.     IF ¨ GENERATINGCFM THEN
  2744.         Macro
  2745.         _VDGetHue
  2746.             move.l              #$00040013,-(sp)
  2747.             moveq               #0,D0
  2748.             dc.w                $A82A
  2749.         EndM
  2750.     ELSE
  2751.         IMPORT_CFM_FUNCTION VDGetHue
  2752.     ENDIF
  2753.  
  2754. ;
  2755. ; pascal VideoDigitizerError VDGetSharpness(VideoDigitizerComponent ci, unsigned short *sharpness)
  2756. ;
  2757.     IF ¨ GENERATINGCFM THEN
  2758.         Macro
  2759.         _VDGetSharpness
  2760.             move.l              #$00040014,-(sp)
  2761.             moveq               #0,D0
  2762.             dc.w                $A82A
  2763.         EndM
  2764.     ELSE
  2765.         IMPORT_CFM_FUNCTION VDGetSharpness
  2766.     ENDIF
  2767.  
  2768. ;
  2769. ; pascal VideoDigitizerError VDGetSaturation(VideoDigitizerComponent ci, unsigned short *saturation)
  2770. ;
  2771.     IF ¨ GENERATINGCFM THEN
  2772.         Macro
  2773.         _VDGetSaturation
  2774.             move.l              #$00040015,-(sp)
  2775.             moveq               #0,D0
  2776.             dc.w                $A82A
  2777.         EndM
  2778.     ELSE
  2779.         IMPORT_CFM_FUNCTION VDGetSaturation
  2780.     ENDIF
  2781.  
  2782. ;
  2783. ; pascal VideoDigitizerError VDGrabOneFrame(VideoDigitizerComponent ci)
  2784. ;
  2785.     IF ¨ GENERATINGCFM THEN
  2786.         Macro
  2787.         _VDGrabOneFrame
  2788.             move.l              #$00000016,-(sp)
  2789.             moveq               #0,D0
  2790.             dc.w                $A82A
  2791.         EndM
  2792.     ELSE
  2793.         IMPORT_CFM_FUNCTION VDGrabOneFrame
  2794.     ENDIF
  2795.  
  2796. ;
  2797. ; pascal VideoDigitizerError VDGetMaxAuxBuffer(VideoDigitizerComponent ci, PixMapHandle *pm, Rect *r)
  2798. ;
  2799.     IF ¨ GENERATINGCFM THEN
  2800.         Macro
  2801.         _VDGetMaxAuxBuffer
  2802.             move.l              #$00080017,-(sp)
  2803.             moveq               #0,D0
  2804.             dc.w                $A82A
  2805.         EndM
  2806.     ELSE
  2807.         IMPORT_CFM_FUNCTION VDGetMaxAuxBuffer
  2808.     ENDIF
  2809.  
  2810. ;
  2811. ; pascal VideoDigitizerError VDGetDigitizerInfo(VideoDigitizerComponent ci, DigitizerInfo *info)
  2812. ;
  2813.     IF ¨ GENERATINGCFM THEN
  2814.         Macro
  2815.         _VDGetDigitizerInfo
  2816.             move.l              #$00040019,-(sp)
  2817.             moveq               #0,D0
  2818.             dc.w                $A82A
  2819.         EndM
  2820.     ELSE
  2821.         IMPORT_CFM_FUNCTION VDGetDigitizerInfo
  2822.     ENDIF
  2823.  
  2824. ;
  2825. ; pascal VideoDigitizerError VDGetCurrentFlags(VideoDigitizerComponent ci, long *inputCurrentFlag, long *outputCurrentFlag)
  2826. ;
  2827.     IF ¨ GENERATINGCFM THEN
  2828.         Macro
  2829.         _VDGetCurrentFlags
  2830.             move.l              #$0008001A,-(sp)
  2831.             moveq               #0,D0
  2832.             dc.w                $A82A
  2833.         EndM
  2834.     ELSE
  2835.         IMPORT_CFM_FUNCTION VDGetCurrentFlags
  2836.     ENDIF
  2837.  
  2838. ;
  2839. ; pascal VideoDigitizerError VDSetKeyColor(VideoDigitizerComponent ci, long index)
  2840. ;
  2841.     IF ¨ GENERATINGCFM THEN
  2842.         Macro
  2843.         _VDSetKeyColor
  2844.             move.l              #$0004001B,-(sp)
  2845.             moveq               #0,D0
  2846.             dc.w                $A82A
  2847.         EndM
  2848.     ELSE
  2849.         IMPORT_CFM_FUNCTION VDSetKeyColor
  2850.     ENDIF
  2851.  
  2852. ;
  2853. ; pascal VideoDigitizerError VDGetKeyColor(VideoDigitizerComponent ci, long *index)
  2854. ;
  2855.     IF ¨ GENERATINGCFM THEN
  2856.         Macro
  2857.         _VDGetKeyColor
  2858.             move.l              #$0004001C,-(sp)
  2859.             moveq               #0,D0
  2860.             dc.w                $A82A
  2861.         EndM
  2862.     ELSE
  2863.         IMPORT_CFM_FUNCTION VDGetKeyColor
  2864.     ENDIF
  2865.  
  2866. ;
  2867. ; pascal VideoDigitizerError VDAddKeyColor(VideoDigitizerComponent ci, long *index)
  2868. ;
  2869.     IF ¨ GENERATINGCFM THEN
  2870.         Macro
  2871.         _VDAddKeyColor
  2872.             move.l              #$0004001D,-(sp)
  2873.             moveq               #0,D0
  2874.             dc.w                $A82A
  2875.         EndM
  2876.     ELSE
  2877.         IMPORT_CFM_FUNCTION VDAddKeyColor
  2878.     ENDIF
  2879.  
  2880. ;
  2881. ; pascal VideoDigitizerError VDGetNextKeyColor(VideoDigitizerComponent ci, long index)
  2882. ;
  2883.     IF ¨ GENERATINGCFM THEN
  2884.         Macro
  2885.         _VDGetNextKeyColor
  2886.             move.l              #$0004001E,-(sp)
  2887.             moveq               #0,D0
  2888.             dc.w                $A82A
  2889.         EndM
  2890.     ELSE
  2891.         IMPORT_CFM_FUNCTION VDGetNextKeyColor
  2892.     ENDIF
  2893.  
  2894. ;
  2895. ; pascal VideoDigitizerError VDSetKeyColorRange(VideoDigitizerComponent ci, RGBColor *minRGB, RGBColor *maxRGB)
  2896. ;
  2897.     IF ¨ GENERATINGCFM THEN
  2898.         Macro
  2899.         _VDSetKeyColorRange
  2900.             move.l              #$0008001F,-(sp)
  2901.             moveq               #0,D0
  2902.             dc.w                $A82A
  2903.         EndM
  2904.     ELSE
  2905.         IMPORT_CFM_FUNCTION VDSetKeyColorRange
  2906.     ENDIF
  2907.  
  2908. ;
  2909. ; pascal VideoDigitizerError VDGetKeyColorRange(VideoDigitizerComponent ci, RGBColor *minRGB, RGBColor *maxRGB)
  2910. ;
  2911.     IF ¨ GENERATINGCFM THEN
  2912.         Macro
  2913.         _VDGetKeyColorRange
  2914.             move.l              #$00080020,-(sp)
  2915.             moveq               #0,D0
  2916.             dc.w                $A82A
  2917.         EndM
  2918.     ELSE
  2919.         IMPORT_CFM_FUNCTION VDGetKeyColorRange
  2920.     ENDIF
  2921.  
  2922. ;
  2923. ; pascal VideoDigitizerError VDSetDigitizerUserInterrupt(VideoDigitizerComponent ci, long flags, VdigIntUPP userInterruptProc, long refcon)
  2924. ;
  2925.     IF ¨ GENERATINGCFM THEN
  2926.         Macro
  2927.         _VDSetDigitizerUserInterrupt
  2928.             move.l              #$000C0021,-(sp)
  2929.             moveq               #0,D0
  2930.             dc.w                $A82A
  2931.         EndM
  2932.     ELSE
  2933.         IMPORT_CFM_FUNCTION VDSetDigitizerUserInterrupt
  2934.     ENDIF
  2935.  
  2936. ;
  2937. ; pascal VideoDigitizerError VDSetInputColorSpaceMode(VideoDigitizerComponent ci, short colorSpaceMode)
  2938. ;
  2939.     IF ¨ GENERATINGCFM THEN
  2940.         Macro
  2941.         _VDSetInputColorSpaceMode
  2942.             move.l              #$00020022,-(sp)
  2943.             moveq               #0,D0
  2944.             dc.w                $A82A
  2945.         EndM
  2946.     ELSE
  2947.         IMPORT_CFM_FUNCTION VDSetInputColorSpaceMode
  2948.     ENDIF
  2949.  
  2950. ;
  2951. ; pascal VideoDigitizerError VDGetInputColorSpaceMode(VideoDigitizerComponent ci, short *colorSpaceMode)
  2952. ;
  2953.     IF ¨ GENERATINGCFM THEN
  2954.         Macro
  2955.         _VDGetInputColorSpaceMode
  2956.             move.l              #$00040023,-(sp)
  2957.             moveq               #0,D0
  2958.             dc.w                $A82A
  2959.         EndM
  2960.     ELSE
  2961.         IMPORT_CFM_FUNCTION VDGetInputColorSpaceMode
  2962.     ENDIF
  2963.  
  2964. ;
  2965. ; pascal VideoDigitizerError VDSetClipState(VideoDigitizerComponent ci, short clipEnable)
  2966. ;
  2967.     IF ¨ GENERATINGCFM THEN
  2968.         Macro
  2969.         _VDSetClipState
  2970.             move.l              #$00020024,-(sp)
  2971.             moveq               #0,D0
  2972.             dc.w                $A82A
  2973.         EndM
  2974.     ELSE
  2975.         IMPORT_CFM_FUNCTION VDSetClipState
  2976.     ENDIF
  2977.  
  2978. ;
  2979. ; pascal VideoDigitizerError VDGetClipState(VideoDigitizerComponent ci, short *clipEnable)
  2980. ;
  2981.     IF ¨ GENERATINGCFM THEN
  2982.         Macro
  2983.         _VDGetClipState
  2984.             move.l              #$00040025,-(sp)
  2985.             moveq               #0,D0
  2986.             dc.w                $A82A
  2987.         EndM
  2988.     ELSE
  2989.         IMPORT_CFM_FUNCTION VDGetClipState
  2990.     ENDIF
  2991.  
  2992. ;
  2993. ; pascal VideoDigitizerError VDSetClipRgn(VideoDigitizerComponent ci, RgnHandle clipRegion)
  2994. ;
  2995.     IF ¨ GENERATINGCFM THEN
  2996.         Macro
  2997.         _VDSetClipRgn
  2998.             move.l              #$00040026,-(sp)
  2999.             moveq               #0,D0
  3000.             dc.w                $A82A
  3001.         EndM
  3002.     ELSE
  3003.         IMPORT_CFM_FUNCTION VDSetClipRgn
  3004.     ENDIF
  3005.  
  3006. ;
  3007. ; pascal VideoDigitizerError VDClearClipRgn(VideoDigitizerComponent ci, RgnHandle clipRegion)
  3008. ;
  3009.     IF ¨ GENERATINGCFM THEN
  3010.         Macro
  3011.         _VDClearClipRgn
  3012.             move.l              #$00040027,-(sp)
  3013.             moveq               #0,D0
  3014.             dc.w                $A82A
  3015.         EndM
  3016.     ELSE
  3017.         IMPORT_CFM_FUNCTION VDClearClipRgn
  3018.     ENDIF
  3019.  
  3020. ;
  3021. ; pascal VideoDigitizerError VDGetCLUTInUse(VideoDigitizerComponent ci, CTabHandle *colorTableHandle)
  3022. ;
  3023.     IF ¨ GENERATINGCFM THEN
  3024.         Macro
  3025.         _VDGetCLUTInUse
  3026.             move.l              #$00040028,-(sp)
  3027.             moveq               #0,D0
  3028.             dc.w                $A82A
  3029.         EndM
  3030.     ELSE
  3031.         IMPORT_CFM_FUNCTION VDGetCLUTInUse
  3032.     ENDIF
  3033.  
  3034. ;
  3035. ; pascal VideoDigitizerError VDSetPLLFilterType(VideoDigitizerComponent ci, short pllType)
  3036. ;
  3037.     IF ¨ GENERATINGCFM THEN
  3038.         Macro
  3039.         _VDSetPLLFilterType
  3040.             move.l              #$00020029,-(sp)
  3041.             moveq               #0,D0
  3042.             dc.w                $A82A
  3043.         EndM
  3044.     ELSE
  3045.         IMPORT_CFM_FUNCTION VDSetPLLFilterType
  3046.     ENDIF
  3047.  
  3048. ;
  3049. ; pascal VideoDigitizerError VDGetPLLFilterType(VideoDigitizerComponent ci, short *pllType)
  3050. ;
  3051.     IF ¨ GENERATINGCFM THEN
  3052.         Macro
  3053.         _VDGetPLLFilterType
  3054.             move.l              #$0004002A,-(sp)
  3055.             moveq               #0,D0
  3056.             dc.w                $A82A
  3057.         EndM
  3058.     ELSE
  3059.         IMPORT_CFM_FUNCTION VDGetPLLFilterType
  3060.     ENDIF
  3061.  
  3062. ;
  3063. ; pascal VideoDigitizerError VDGetMaskandValue(VideoDigitizerComponent ci, unsigned short blendLevel, long *mask, long *value)
  3064. ;
  3065.     IF ¨ GENERATINGCFM THEN
  3066.         Macro
  3067.         _VDGetMaskandValue
  3068.             move.l              #$000A002B,-(sp)
  3069.             moveq               #0,D0
  3070.             dc.w                $A82A
  3071.         EndM
  3072.     ELSE
  3073.         IMPORT_CFM_FUNCTION VDGetMaskandValue
  3074.     ENDIF
  3075.  
  3076. ;
  3077. ; pascal VideoDigitizerError VDSetMasterBlendLevel(VideoDigitizerComponent ci, unsigned short *blendLevel)
  3078. ;
  3079.     IF ¨ GENERATINGCFM THEN
  3080.         Macro
  3081.         _VDSetMasterBlendLevel
  3082.             move.l              #$0004002C,-(sp)
  3083.             moveq               #0,D0
  3084.             dc.w                $A82A
  3085.         EndM
  3086.     ELSE
  3087.         IMPORT_CFM_FUNCTION VDSetMasterBlendLevel
  3088.     ENDIF
  3089.  
  3090. ;
  3091. ; pascal VideoDigitizerError VDSetPlayThruDestination(VideoDigitizerComponent ci, PixMapHandle dest, Rect *destRect, MatrixRecord *m, RgnHandle mask)
  3092. ;
  3093.     IF ¨ GENERATINGCFM THEN
  3094.         Macro
  3095.         _VDSetPlayThruDestination
  3096.             move.l              #$0010002D,-(sp)
  3097.             moveq               #0,D0
  3098.             dc.w                $A82A
  3099.         EndM
  3100.     ELSE
  3101.         IMPORT_CFM_FUNCTION VDSetPlayThruDestination
  3102.     ENDIF
  3103.  
  3104. ;
  3105. ; pascal VideoDigitizerError VDSetPlayThruOnOff(VideoDigitizerComponent ci, short state)
  3106. ;
  3107.     IF ¨ GENERATINGCFM THEN
  3108.         Macro
  3109.         _VDSetPlayThruOnOff
  3110.             move.l              #$0002002E,-(sp)
  3111.             moveq               #0,D0
  3112.             dc.w                $A82A
  3113.         EndM
  3114.     ELSE
  3115.         IMPORT_CFM_FUNCTION VDSetPlayThruOnOff
  3116.     ENDIF
  3117.  
  3118. ;
  3119. ; pascal VideoDigitizerError VDSetFieldPreference(VideoDigitizerComponent ci, short fieldFlag)
  3120. ;
  3121.     IF ¨ GENERATINGCFM THEN
  3122.         Macro
  3123.         _VDSetFieldPreference
  3124.             move.l              #$0002002F,-(sp)
  3125.             moveq               #0,D0
  3126.             dc.w                $A82A
  3127.         EndM
  3128.     ELSE
  3129.         IMPORT_CFM_FUNCTION VDSetFieldPreference
  3130.     ENDIF
  3131.  
  3132. ;
  3133. ; pascal VideoDigitizerError VDGetFieldPreference(VideoDigitizerComponent ci, short *fieldFlag)
  3134. ;
  3135.     IF ¨ GENERATINGCFM THEN
  3136.         Macro
  3137.         _VDGetFieldPreference
  3138.             move.l              #$00040030,-(sp)
  3139.             moveq               #0,D0
  3140.             dc.w                $A82A
  3141.         EndM
  3142.     ELSE
  3143.         IMPORT_CFM_FUNCTION VDGetFieldPreference
  3144.     ENDIF
  3145.  
  3146. ;
  3147. ; pascal VideoDigitizerError VDPreflightDestination(VideoDigitizerComponent ci, Rect *digitizerRect, PixMap **dest, Rect *destRect, MatrixRecord *m)
  3148. ;
  3149.     IF ¨ GENERATINGCFM THEN
  3150.         Macro
  3151.         _VDPreflightDestination
  3152.             move.l              #$00100032,-(sp)
  3153.             moveq               #0,D0
  3154.             dc.w                $A82A
  3155.         EndM
  3156.     ELSE
  3157.         IMPORT_CFM_FUNCTION VDPreflightDestination
  3158.     ENDIF
  3159.  
  3160. ;
  3161. ; pascal VideoDigitizerError VDPreflightGlobalRect(VideoDigitizerComponent ci, GrafPtr theWindow, Rect *globalRect)
  3162. ;
  3163.     IF ¨ GENERATINGCFM THEN
  3164.         Macro
  3165.         _VDPreflightGlobalRect
  3166.             move.l              #$00080033,-(sp)
  3167.             moveq               #0,D0
  3168.             dc.w                $A82A
  3169.         EndM
  3170.     ELSE
  3171.         IMPORT_CFM_FUNCTION VDPreflightGlobalRect
  3172.     ENDIF
  3173.  
  3174. ;
  3175. ; pascal VideoDigitizerError VDSetPlayThruGlobalRect(VideoDigitizerComponent ci, GrafPtr theWindow, Rect *globalRect)
  3176. ;
  3177.     IF ¨ GENERATINGCFM THEN
  3178.         Macro
  3179.         _VDSetPlayThruGlobalRect
  3180.             move.l              #$00080034,-(sp)
  3181.             moveq               #0,D0
  3182.             dc.w                $A82A
  3183.         EndM
  3184.     ELSE
  3185.         IMPORT_CFM_FUNCTION VDSetPlayThruGlobalRect
  3186.     ENDIF
  3187.  
  3188. ;
  3189. ; pascal VideoDigitizerError VDSetInputGammaRecord(VideoDigitizerComponent ci, VDGamRecPtr inputGammaPtr)
  3190. ;
  3191.     IF ¨ GENERATINGCFM THEN
  3192.         Macro
  3193.         _VDSetInputGammaRecord
  3194.             move.l              #$00040035,-(sp)
  3195.             moveq               #0,D0
  3196.             dc.w                $A82A
  3197.         EndM
  3198.     ELSE
  3199.         IMPORT_CFM_FUNCTION VDSetInputGammaRecord
  3200.     ENDIF
  3201.  
  3202. ;
  3203. ; pascal VideoDigitizerError VDGetInputGammaRecord(VideoDigitizerComponent ci, VDGamRecPtr *inputGammaPtr)
  3204. ;
  3205.     IF ¨ GENERATINGCFM THEN
  3206.         Macro
  3207.         _VDGetInputGammaRecord
  3208.             move.l              #$00040036,-(sp)
  3209.             moveq               #0,D0
  3210.             dc.w                $A82A
  3211.         EndM
  3212.     ELSE
  3213.         IMPORT_CFM_FUNCTION VDGetInputGammaRecord
  3214.     ENDIF
  3215.  
  3216. ;
  3217. ; pascal VideoDigitizerError VDSetBlackLevelValue(VideoDigitizerComponent ci, unsigned short *blackLevel)
  3218. ;
  3219.     IF ¨ GENERATINGCFM THEN
  3220.         Macro
  3221.         _VDSetBlackLevelValue
  3222.             move.l              #$00040037,-(sp)
  3223.             moveq               #0,D0
  3224.             dc.w                $A82A
  3225.         EndM
  3226.     ELSE
  3227.         IMPORT_CFM_FUNCTION VDSetBlackLevelValue
  3228.     ENDIF
  3229.  
  3230. ;
  3231. ; pascal VideoDigitizerError VDGetBlackLevelValue(VideoDigitizerComponent ci, unsigned short *blackLevel)
  3232. ;
  3233.     IF ¨ GENERATINGCFM THEN
  3234.         Macro
  3235.         _VDGetBlackLevelValue
  3236.             move.l              #$00040038,-(sp)
  3237.             moveq               #0,D0
  3238.             dc.w                $A82A
  3239.         EndM
  3240.     ELSE
  3241.         IMPORT_CFM_FUNCTION VDGetBlackLevelValue
  3242.     ENDIF
  3243.  
  3244. ;
  3245. ; pascal VideoDigitizerError VDSetWhiteLevelValue(VideoDigitizerComponent ci, unsigned short *whiteLevel)
  3246. ;
  3247.     IF ¨ GENERATINGCFM THEN
  3248.         Macro
  3249.         _VDSetWhiteLevelValue
  3250.             move.l              #$00040039,-(sp)
  3251.             moveq               #0,D0
  3252.             dc.w                $A82A
  3253.         EndM
  3254.     ELSE
  3255.         IMPORT_CFM_FUNCTION VDSetWhiteLevelValue
  3256.     ENDIF
  3257.  
  3258. ;
  3259. ; pascal VideoDigitizerError VDGetWhiteLevelValue(VideoDigitizerComponent ci, unsigned short *whiteLevel)
  3260. ;
  3261.     IF ¨ GENERATINGCFM THEN
  3262.         Macro
  3263.         _VDGetWhiteLevelValue
  3264.             move.l              #$0004003A,-(sp)
  3265.             moveq               #0,D0
  3266.             dc.w                $A82A
  3267.         EndM
  3268.     ELSE
  3269.         IMPORT_CFM_FUNCTION VDGetWhiteLevelValue
  3270.     ENDIF
  3271.  
  3272. ;
  3273. ; pascal VideoDigitizerError VDGetVideoDefaults(VideoDigitizerComponent ci, unsigned short *blackLevel, unsigned short *whiteLevel, unsigned short *brightness, unsigned short *hue, unsigned short *saturation, unsigned short *contrast, unsigned short *sharpness)
  3274. ;
  3275.     IF ¨ GENERATINGCFM THEN
  3276.         Macro
  3277.         _VDGetVideoDefaults
  3278.             move.l              #$001C003B,-(sp)
  3279.             moveq               #0,D0
  3280.             dc.w                $A82A
  3281.         EndM
  3282.     ELSE
  3283.         IMPORT_CFM_FUNCTION VDGetVideoDefaults
  3284.     ENDIF
  3285.  
  3286. ;
  3287. ; pascal VideoDigitizerError VDGetNumberOfInputs(VideoDigitizerComponent ci, short *inputs)
  3288. ;
  3289.     IF ¨ GENERATINGCFM THEN
  3290.         Macro
  3291.         _VDGetNumberOfInputs
  3292.             move.l              #$0004003C,-(sp)
  3293.             moveq               #0,D0
  3294.             dc.w                $A82A
  3295.         EndM
  3296.     ELSE
  3297.         IMPORT_CFM_FUNCTION VDGetNumberOfInputs
  3298.     ENDIF
  3299.  
  3300. ;
  3301. ; pascal VideoDigitizerError VDGetInputFormat(VideoDigitizerComponent ci, short input, short *format)
  3302. ;
  3303.     IF ¨ GENERATINGCFM THEN
  3304.         Macro
  3305.         _VDGetInputFormat
  3306.             move.l              #$0006003D,-(sp)
  3307.             moveq               #0,D0
  3308.             dc.w                $A82A
  3309.         EndM
  3310.     ELSE
  3311.         IMPORT_CFM_FUNCTION VDGetInputFormat
  3312.     ENDIF
  3313.  
  3314. ;
  3315. ; pascal VideoDigitizerError VDSetInput(VideoDigitizerComponent ci, short input)
  3316. ;
  3317.     IF ¨ GENERATINGCFM THEN
  3318.         Macro
  3319.         _VDSetInput
  3320.             move.l              #$0002003E,-(sp)
  3321.             moveq               #0,D0
  3322.             dc.w                $A82A
  3323.         EndM
  3324.     ELSE
  3325.         IMPORT_CFM_FUNCTION VDSetInput
  3326.     ENDIF
  3327.  
  3328. ;
  3329. ; pascal VideoDigitizerError VDGetInput(VideoDigitizerComponent ci, short *input)
  3330. ;
  3331.     IF ¨ GENERATINGCFM THEN
  3332.         Macro
  3333.         _VDGetInput
  3334.             move.l              #$0004003F,-(sp)
  3335.             moveq               #0,D0
  3336.             dc.w                $A82A
  3337.         EndM
  3338.     ELSE
  3339.         IMPORT_CFM_FUNCTION VDGetInput
  3340.     ENDIF
  3341.  
  3342. ;
  3343. ; pascal VideoDigitizerError VDSetInputStandard(VideoDigitizerComponent ci, short inputStandard)
  3344. ;
  3345.     IF ¨ GENERATINGCFM THEN
  3346.         Macro
  3347.         _VDSetInputStandard
  3348.             move.l              #$00020040,-(sp)
  3349.             moveq               #0,D0
  3350.             dc.w                $A82A
  3351.         EndM
  3352.     ELSE
  3353.         IMPORT_CFM_FUNCTION VDSetInputStandard
  3354.     ENDIF
  3355.  
  3356. ;
  3357. ; pascal VideoDigitizerError VDSetupBuffers(VideoDigitizerComponent ci, VdigBufferRecListHandle bufferList)
  3358. ;
  3359.     IF ¨ GENERATINGCFM THEN
  3360.         Macro
  3361.         _VDSetupBuffers
  3362.             move.l              #$00040041,-(sp)
  3363.             moveq               #0,D0
  3364.             dc.w                $A82A
  3365.         EndM
  3366.     ELSE
  3367.         IMPORT_CFM_FUNCTION VDSetupBuffers
  3368.     ENDIF
  3369.  
  3370. ;
  3371. ; pascal VideoDigitizerError VDGrabOneFrameAsync(VideoDigitizerComponent ci, short buffer)
  3372. ;
  3373.     IF ¨ GENERATINGCFM THEN
  3374.         Macro
  3375.         _VDGrabOneFrameAsync
  3376.             move.l              #$00020042,-(sp)
  3377.             moveq               #0,D0
  3378.             dc.w                $A82A
  3379.         EndM
  3380.     ELSE
  3381.         IMPORT_CFM_FUNCTION VDGrabOneFrameAsync
  3382.     ENDIF
  3383.  
  3384. ;
  3385. ; pascal VideoDigitizerError VDDone(VideoDigitizerComponent ci, short buffer)
  3386. ;
  3387.     IF ¨ GENERATINGCFM THEN
  3388.         Macro
  3389.         _VDDone
  3390.             move.l              #$00020043,-(sp)
  3391.             moveq               #0,D0
  3392.             dc.w                $A82A
  3393.         EndM
  3394.     ELSE
  3395.         IMPORT_CFM_FUNCTION VDDone
  3396.     ENDIF
  3397.  
  3398. ;
  3399. ; pascal VideoDigitizerError VDSetCompression(VideoDigitizerComponent ci, OSType compressType, short depth, Rect *bounds, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate)
  3400. ;
  3401.     IF ¨ GENERATINGCFM THEN
  3402.         Macro
  3403.         _VDSetCompression
  3404.             move.l              #$00160044,-(sp)
  3405.             moveq               #0,D0
  3406.             dc.w                $A82A
  3407.         EndM
  3408.     ELSE
  3409.         IMPORT_CFM_FUNCTION VDSetCompression
  3410.     ENDIF
  3411.  
  3412. ;
  3413. ; pascal VideoDigitizerError VDCompressOneFrameAsync(VideoDigitizerComponent ci)
  3414. ;
  3415.     IF ¨ GENERATINGCFM THEN
  3416.         Macro
  3417.         _VDCompressOneFrameAsync
  3418.             move.l              #$00000045,-(sp)
  3419.             moveq               #0,D0
  3420.             dc.w                $A82A
  3421.         EndM
  3422.     ELSE
  3423.         IMPORT_CFM_FUNCTION VDCompressOneFrameAsync
  3424.     ENDIF
  3425.  
  3426. ;
  3427. ; pascal VideoDigitizerError VDCompressDone(VideoDigitizerComponent ci, Boolean *done, Ptr *theData, long *dataSize, UInt8 *similarity, TimeRecord *t)
  3428. ;
  3429.     IF ¨ GENERATINGCFM THEN
  3430.         Macro
  3431.         _VDCompressDone
  3432.             move.l              #$00140046,-(sp)
  3433.             moveq               #0,D0
  3434.             dc.w                $A82A
  3435.         EndM
  3436.     ELSE
  3437.         IMPORT_CFM_FUNCTION VDCompressDone
  3438.     ENDIF
  3439.  
  3440. ;
  3441. ; pascal VideoDigitizerError VDReleaseCompressBuffer(VideoDigitizerComponent ci, Ptr bufferAddr)
  3442. ;
  3443.     IF ¨ GENERATINGCFM THEN
  3444.         Macro
  3445.         _VDReleaseCompressBuffer
  3446.             move.l              #$00040047,-(sp)
  3447.             moveq               #0,D0
  3448.             dc.w                $A82A
  3449.         EndM
  3450.     ELSE
  3451.         IMPORT_CFM_FUNCTION VDReleaseCompressBuffer
  3452.     ENDIF
  3453.  
  3454. ;
  3455. ; pascal VideoDigitizerError VDGetImageDescription(VideoDigitizerComponent ci, ImageDescriptionHandle desc)
  3456. ;
  3457.     IF ¨ GENERATINGCFM THEN
  3458.         Macro
  3459.         _VDGetImageDescription
  3460.             move.l              #$00040048,-(sp)
  3461.             moveq               #0,D0
  3462.             dc.w                $A82A
  3463.         EndM
  3464.     ELSE
  3465.         IMPORT_CFM_FUNCTION VDGetImageDescription
  3466.     ENDIF
  3467.  
  3468. ;
  3469. ; pascal VideoDigitizerError VDResetCompressSequence(VideoDigitizerComponent ci)
  3470. ;
  3471.     IF ¨ GENERATINGCFM THEN
  3472.         Macro
  3473.         _VDResetCompressSequence
  3474.             move.l              #$00000049,-(sp)
  3475.             moveq               #0,D0
  3476.             dc.w                $A82A
  3477.         EndM
  3478.     ELSE
  3479.         IMPORT_CFM_FUNCTION VDResetCompressSequence
  3480.     ENDIF
  3481.  
  3482. ;
  3483. ; pascal VideoDigitizerError VDSetCompressionOnOff(VideoDigitizerComponent ci, Boolean state)
  3484. ;
  3485.     IF ¨ GENERATINGCFM THEN
  3486.         Macro
  3487.         _VDSetCompressionOnOff
  3488.             move.l              #$0002004A,-(sp)
  3489.             moveq               #0,D0
  3490.             dc.w                $A82A
  3491.         EndM
  3492.     ELSE
  3493.         IMPORT_CFM_FUNCTION VDSetCompressionOnOff
  3494.     ENDIF
  3495.  
  3496. ;
  3497. ; pascal VideoDigitizerError VDGetCompressionTypes(VideoDigitizerComponent ci, VDCompressionListHandle h)
  3498. ;
  3499.     IF ¨ GENERATINGCFM THEN
  3500.         Macro
  3501.         _VDGetCompressionTypes
  3502.             move.l              #$0004004B,-(sp)
  3503.             moveq               #0,D0
  3504.             dc.w                $A82A
  3505.         EndM
  3506.     ELSE
  3507.         IMPORT_CFM_FUNCTION VDGetCompressionTypes
  3508.     ENDIF
  3509.  
  3510. ;
  3511. ; pascal VideoDigitizerError VDSetTimeBase(VideoDigitizerComponent ci, TimeBase t)
  3512. ;
  3513.     IF ¨ GENERATINGCFM THEN
  3514.         Macro
  3515.         _VDSetTimeBase
  3516.             move.l              #$0004004C,-(sp)
  3517.             moveq               #0,D0
  3518.             dc.w                $A82A
  3519.         EndM
  3520.     ELSE
  3521.         IMPORT_CFM_FUNCTION VDSetTimeBase
  3522.     ENDIF
  3523.  
  3524. ;
  3525. ; pascal VideoDigitizerError VDSetFrameRate(VideoDigitizerComponent ci, Fixed framesPerSecond)
  3526. ;
  3527.     IF ¨ GENERATINGCFM THEN
  3528.         Macro
  3529.         _VDSetFrameRate
  3530.             move.l              #$0004004D,-(sp)
  3531.             moveq               #0,D0
  3532.             dc.w                $A82A
  3533.         EndM
  3534.     ELSE
  3535.         IMPORT_CFM_FUNCTION VDSetFrameRate
  3536.     ENDIF
  3537.  
  3538. ;
  3539. ; pascal VideoDigitizerError VDGetDataRate(VideoDigitizerComponent ci, long *milliSecPerFrame, Fixed *framesPerSecond, long *bytesPerSecond)
  3540. ;
  3541.     IF ¨ GENERATINGCFM THEN
  3542.         Macro
  3543.         _VDGetDataRate
  3544.             move.l              #$000C004E,-(sp)
  3545.             moveq               #0,D0
  3546.             dc.w                $A82A
  3547.         EndM
  3548.     ELSE
  3549.         IMPORT_CFM_FUNCTION VDGetDataRate
  3550.     ENDIF
  3551.  
  3552. ;
  3553. ; pascal VideoDigitizerError VDGetSoundInputDriver(VideoDigitizerComponent ci, Str255 soundDriverName)
  3554. ;
  3555.     IF ¨ GENERATINGCFM THEN
  3556.         Macro
  3557.         _VDGetSoundInputDriver
  3558.             move.l              #$0004004F,-(sp)
  3559.             moveq               #0,D0
  3560.             dc.w                $A82A
  3561.         EndM
  3562.     ELSE
  3563.         IMPORT_CFM_FUNCTION VDGetSoundInputDriver
  3564.     ENDIF
  3565.  
  3566. ;
  3567. ; pascal VideoDigitizerError VDGetDMADepths(VideoDigitizerComponent ci, long *depthArray, long *preferredDepth)
  3568. ;
  3569.     IF ¨ GENERATINGCFM THEN
  3570.         Macro
  3571.         _VDGetDMADepths
  3572.             move.l              #$00080050,-(sp)
  3573.             moveq               #0,D0
  3574.             dc.w                $A82A
  3575.         EndM
  3576.     ELSE
  3577.         IMPORT_CFM_FUNCTION VDGetDMADepths
  3578.     ENDIF
  3579.  
  3580. ;
  3581. ; pascal VideoDigitizerError VDGetPreferredTimeScale(VideoDigitizerComponent ci, TimeScale *preferred)
  3582. ;
  3583.     IF ¨ GENERATINGCFM THEN
  3584.         Macro
  3585.         _VDGetPreferredTimeScale
  3586.             move.l              #$00040051,-(sp)
  3587.             moveq               #0,D0
  3588.             dc.w                $A82A
  3589.         EndM
  3590.     ELSE
  3591.         IMPORT_CFM_FUNCTION VDGetPreferredTimeScale
  3592.     ENDIF
  3593.  
  3594. ;
  3595. ; pascal VideoDigitizerError VDReleaseAsyncBuffers(VideoDigitizerComponent ci)
  3596. ;
  3597.     IF ¨ GENERATINGCFM THEN
  3598.         Macro
  3599.         _VDReleaseAsyncBuffers
  3600.             move.l              #$00000052,-(sp)
  3601.             moveq               #0,D0
  3602.             dc.w                $A82A
  3603.         EndM
  3604.     ELSE
  3605.         IMPORT_CFM_FUNCTION VDReleaseAsyncBuffers
  3606.     ENDIF
  3607.  
  3608. ;  83 is reserved for compatibility reasons 
  3609. ;
  3610. ; pascal VideoDigitizerError VDSetDataRate(VideoDigitizerComponent ci, long bytesPerSecond)
  3611. ;
  3612.     IF ¨ GENERATINGCFM THEN
  3613.         Macro
  3614.         _VDSetDataRate
  3615.             move.l              #$00040054,-(sp)
  3616.             moveq               #0,D0
  3617.             dc.w                $A82A
  3618.         EndM
  3619.     ELSE
  3620.         IMPORT_CFM_FUNCTION VDSetDataRate
  3621.     ENDIF
  3622.  
  3623. ;
  3624. ; pascal VideoDigitizerError VDGetTimeCode(VideoDigitizerComponent ci, TimeRecord *atTime, void *timeCodeFormat, void *timeCodeTime)
  3625. ;
  3626.     IF ¨ GENERATINGCFM THEN
  3627.         Macro
  3628.         _VDGetTimeCode
  3629.             move.l              #$000C0055,-(sp)
  3630.             moveq               #0,D0
  3631.             dc.w                $A82A
  3632.         EndM
  3633.     ELSE
  3634.         IMPORT_CFM_FUNCTION VDGetTimeCode
  3635.     ENDIF
  3636.  
  3637. ;
  3638. ; pascal VideoDigitizerError VDUseSafeBuffers(VideoDigitizerComponent ci, Boolean useSafeBuffers)
  3639. ;
  3640.     IF ¨ GENERATINGCFM THEN
  3641.         Macro
  3642.         _VDUseSafeBuffers
  3643.             move.l              #$00020056,-(sp)
  3644.             moveq               #0,D0
  3645.             dc.w                $A82A
  3646.         EndM
  3647.     ELSE
  3648.         IMPORT_CFM_FUNCTION VDUseSafeBuffers
  3649.     ENDIF
  3650.  
  3651. ;
  3652. ; pascal VideoDigitizerError VDGetSoundInputSource(VideoDigitizerComponent ci, long videoInput, long *soundInput)
  3653. ;
  3654.     IF ¨ GENERATINGCFM THEN
  3655.         Macro
  3656.         _VDGetSoundInputSource
  3657.             move.l              #$00080057,-(sp)
  3658.             moveq               #0,D0
  3659.             dc.w                $A82A
  3660.         EndM
  3661.     ELSE
  3662.         IMPORT_CFM_FUNCTION VDGetSoundInputSource
  3663.     ENDIF
  3664.  
  3665. ;
  3666. ; pascal VideoDigitizerError VDGetCompressionTime(VideoDigitizerComponent ci, OSType compressionType, short depth, Rect *srcRect, CodecQ *spatialQuality, CodecQ *temporalQuality, unsigned long *compressTime)
  3667. ;
  3668.     IF ¨ GENERATINGCFM THEN
  3669.         Macro
  3670.         _VDGetCompressionTime
  3671.             move.l              #$00160058,-(sp)
  3672.             moveq               #0,D0
  3673.             dc.w                $A82A
  3674.         EndM
  3675.     ELSE
  3676.         IMPORT_CFM_FUNCTION VDGetCompressionTime
  3677.     ENDIF
  3678.  
  3679.  
  3680. kSelectVDGetMaxSrcRect            EQU        $01
  3681. kSelectVDGetActiveSrcRect        EQU        $02
  3682. kSelectVDSetDigitizerRect        EQU        $03
  3683. kSelectVDGetDigitizerRect        EQU        $04
  3684. kSelectVDGetVBlankRect            EQU        $05
  3685. kSelectVDGetMaskPixMap            EQU        $06
  3686. kSelectVDGetPlayThruDestination    EQU        $08
  3687. kSelectVDUseThisCLUT            EQU        $09
  3688. kSelectVDSetInputGammaValue        EQU        $0A
  3689. kSelectVDGetInputGammaValue        EQU        $0B
  3690. kSelectVDSetBrightness            EQU        $0C
  3691. kSelectVDGetBrightness            EQU        $0D
  3692. kSelectVDSetContrast            EQU        $0E
  3693. kSelectVDSetHue                    EQU        $0F
  3694. kSelectVDSetSharpness            EQU        $10
  3695. kSelectVDSetSaturation            EQU        $11
  3696. kSelectVDGetContrast            EQU        $12
  3697. kSelectVDGetHue                    EQU        $13
  3698. kSelectVDGetSharpness            EQU        $14
  3699. kSelectVDGetSaturation            EQU        $15
  3700. kSelectVDGrabOneFrame            EQU        $16
  3701. kSelectVDGetMaxAuxBuffer        EQU        $17
  3702. kSelectVDGetDigitizerInfo        EQU        $19
  3703. kSelectVDGetCurrentFlags        EQU        $1A
  3704. kSelectVDSetKeyColor            EQU        $1B
  3705. kSelectVDGetKeyColor            EQU        $1C
  3706. kSelectVDAddKeyColor            EQU        $1D
  3707. kSelectVDGetNextKeyColor        EQU        $1E
  3708. kSelectVDSetKeyColorRange        EQU        $1F
  3709. kSelectVDGetKeyColorRange        EQU        $20
  3710. kSelectVDSetDigitizerUserInterrupt EQU    $21
  3711. kSelectVDSetInputColorSpaceMode    EQU        $22
  3712. kSelectVDGetInputColorSpaceMode    EQU        $23
  3713. kSelectVDSetClipState            EQU        $24
  3714. kSelectVDGetClipState            EQU        $25
  3715. kSelectVDSetClipRgn                EQU        $26
  3716. kSelectVDClearClipRgn            EQU        $27
  3717. kSelectVDGetCLUTInUse            EQU        $28
  3718. kSelectVDSetPLLFilterType        EQU        $29
  3719. kSelectVDGetPLLFilterType        EQU        $2A
  3720. kSelectVDGetMaskandValue        EQU        $2B
  3721. kSelectVDSetMasterBlendLevel    EQU        $2C
  3722. kSelectVDSetPlayThruDestination    EQU        $2D
  3723. kSelectVDSetPlayThruOnOff        EQU        $2E
  3724. kSelectVDSetFieldPreference        EQU        $2F
  3725. kSelectVDGetFieldPreference        EQU        $30
  3726. kSelectVDPreflightDestination    EQU        $32
  3727. kSelectVDPreflightGlobalRect    EQU        $33
  3728. kSelectVDSetPlayThruGlobalRect    EQU        $34
  3729. kSelectVDSetInputGammaRecord    EQU        $35
  3730. kSelectVDGetInputGammaRecord    EQU        $36
  3731. kSelectVDSetBlackLevelValue        EQU        $37
  3732. kSelectVDGetBlackLevelValue        EQU        $38
  3733. kSelectVDSetWhiteLevelValue        EQU        $39
  3734. kSelectVDGetWhiteLevelValue        EQU        $3A
  3735. kSelectVDGetVideoDefaults        EQU        $3B
  3736. kSelectVDGetNumberOfInputs        EQU        $3C
  3737. kSelectVDGetInputFormat            EQU        $3D
  3738. kSelectVDSetInput                EQU        $3E
  3739. kSelectVDGetInput                EQU        $3F
  3740. kSelectVDSetInputStandard        EQU        $40
  3741. kSelectVDSetupBuffers            EQU        $41
  3742. kSelectVDGrabOneFrameAsync        EQU        $42
  3743. kSelectVDDone                    EQU        $43
  3744. kSelectVDSetCompression            EQU        $44
  3745. kSelectVDCompressOneFrameAsync    EQU        $45
  3746. kSelectVDCompressDone            EQU        $46
  3747. kSelectVDReleaseCompressBuffer    EQU        $47
  3748. kSelectVDGetImageDescription    EQU        $48
  3749. kSelectVDResetCompressSequence    EQU        $49
  3750. kSelectVDSetCompressionOnOff    EQU        $4A
  3751. kSelectVDGetCompressionTypes    EQU        $4B
  3752. kSelectVDSetTimeBase            EQU        $4C
  3753. kSelectVDSetFrameRate            EQU        $4D
  3754. kSelectVDGetDataRate            EQU        $4E
  3755. kSelectVDGetSoundInputDriver    EQU        $4F
  3756. kSelectVDGetDMADepths            EQU        $50
  3757. kSelectVDGetPreferredTimeScale    EQU        $51
  3758. kSelectVDReleaseAsyncBuffers    EQU        $52
  3759. kSelectVDSetDataRate            EQU        $54
  3760. kSelectVDGetTimeCode            EQU        $55
  3761. kSelectVDUseSafeBuffers            EQU        $56
  3762. kSelectVDGetSoundInputSource    EQU        $57
  3763. kSelectVDGetCompressionTime        EQU        $58
  3764.  
  3765. StandardCompressionType            EQU        'scdi'
  3766. StandardCompressionSubType        EQU        'imag'
  3767. ;     Preference flags.
  3768.  
  3769. scListEveryCodec                EQU        $00000002
  3770. scAllowZeroFrameRate            EQU        $00000004
  3771. scAllowZeroKeyFrameRate            EQU        $00000008
  3772. scShowBestDepth                    EQU        $00000010
  3773. scUseMovableModal                EQU        $00000020
  3774. ;     Possible test flags for setting test image.
  3775.  
  3776. scPreferCropping                EQU        $01
  3777. scPreferScaling                    EQU        $02
  3778. scPreferScalingAndCropping        EQU        $03
  3779. ;     Dimensions of the image preview box.
  3780.  
  3781. scTestImageWidth                EQU        80
  3782. scTestImageHeight                EQU        80
  3783. ;     Possible items returned by hookProc.
  3784.  
  3785. scOKItem                        EQU        1
  3786. scCancelItem                    EQU        2
  3787. scCustomItem                    EQU        3
  3788. ;     Result returned when user cancelled.
  3789.  
  3790. scUserCancelled                    EQU        1
  3791. ;     Get/SetInfo structures.
  3792. SCSpatialSettings        RECORD 0
  3793. codecType                 ds.l    1                ; offset: $0 (0)
  3794. codec                     ds.l    1                ; offset: $4 (4)
  3795. depth                     ds.w    1                ; offset: $8 (8)
  3796. spatialQuality             ds.l    1                ; offset: $A (10)
  3797. sizeof                     EQU *                    ; size:   $E (14)
  3798.                         ENDR
  3799. SCTemporalSettings        RECORD 0
  3800. temporalQuality             ds.l    1                ; offset: $0 (0)
  3801. frameRate                 ds.l    1                ; offset: $4 (4)
  3802. keyFrameRate             ds.l    1                ; offset: $8 (8)
  3803. sizeof                     EQU *                    ; size:   $C (12)
  3804.                         ENDR
  3805. SCDataRateSettings        RECORD 0
  3806. dataRate                 ds.l    1                ; offset: $0 (0)
  3807. frameDuration             ds.l    1                ; offset: $4 (4)
  3808. minSpatialQuality         ds.l    1                ; offset: $8 (8)
  3809. minTemporalQuality         ds.l    1                ; offset: $C (12)
  3810. sizeof                     EQU *                    ; size:   $10 (16)
  3811.                         ENDR
  3812. SCExtendedProcs            RECORD 0
  3813. filterProc                 ds.l    1                ; offset: $0 (0)
  3814. hookProc                 ds.l    1                ; offset: $4 (4)
  3815. refcon                     ds.l    1                ; offset: $8 (8)
  3816. customName                 ds        Str31            ; offset: $C (12)
  3817. sizeof                     EQU *                    ; size:   $2C (44)
  3818.                         ENDR
  3819. ;     Get/SetInfo selectors
  3820.  
  3821. scSpatialSettingsType            EQU        'sptl'                ; pointer to SCSpatialSettings struct
  3822. scTemporalSettingsType            EQU        'tprl'                ; pointer to SCTemporalSettings struct
  3823. scDataRateSettingsType            EQU        'drat'                ; pointer to SCDataRateSettings struct
  3824. scColorTableType                EQU        'clut'                ; pointer to CTabHandle
  3825. scProgressProcType                EQU        'prog'                ; pointer to ProgressRecord struct
  3826. scExtendedProcsType                EQU        'xprc'                ; pointer to SCExtendedProcs struct
  3827. scPreferenceFlagsType            EQU        'pref'                ; pointer to long
  3828. scSettingsStateType                EQU        'ssta'                ; pointer to Handle
  3829. scSequenceIDType                EQU        'sequ'                ; pointer to ImageSequence
  3830. scWindowPositionType            EQU        'wndw'                ; pointer to Point
  3831. scCodecFlagsType                EQU        'cflg'                ; pointer to CodecFlags
  3832. scCodecSettingsType                EQU        'cdec'                ; pointer to Handle
  3833. scForceKeyValueType                EQU        'ksim'                ; pointer to long
  3834. ;     scTypeNotFoundErr returned by Get/SetInfo when type cannot be found.
  3835. ; * These are Progress procedures *
  3836. ;
  3837. ; pascal ComponentResult SCPositionRect(ComponentInstance ci, Rect *rp, Point *where)
  3838. ;
  3839.     IF ¨ GENERATINGCFM THEN
  3840.         Macro
  3841.         _SCPositionRect
  3842.             move.l              #$00080002,-(sp)
  3843.             moveq               #0,D0
  3844.             dc.w                $A82A
  3845.         EndM
  3846.     ELSE
  3847.         IMPORT_CFM_FUNCTION SCPositionRect
  3848.     ENDIF
  3849.  
  3850. ;
  3851. ; pascal ComponentResult SCPositionDialog(ComponentInstance ci, short id, Point *where)
  3852. ;
  3853.     IF ¨ GENERATINGCFM THEN
  3854.         Macro
  3855.         _SCPositionDialog
  3856.             move.l              #$00060003,-(sp)
  3857.             moveq               #0,D0
  3858.             dc.w                $A82A
  3859.         EndM
  3860.     ELSE
  3861.         IMPORT_CFM_FUNCTION SCPositionDialog
  3862.     ENDIF
  3863.  
  3864. ;
  3865. ; pascal ComponentResult SCSetTestImagePictHandle(ComponentInstance ci, PicHandle testPict, Rect *testRect, short testFlags)
  3866. ;
  3867.     IF ¨ GENERATINGCFM THEN
  3868.         Macro
  3869.         _SCSetTestImagePictHandle
  3870.             move.l              #$000A0004,-(sp)
  3871.             moveq               #0,D0
  3872.             dc.w                $A82A
  3873.         EndM
  3874.     ELSE
  3875.         IMPORT_CFM_FUNCTION SCSetTestImagePictHandle
  3876.     ENDIF
  3877.  
  3878. ;
  3879. ; pascal ComponentResult SCSetTestImagePictFile(ComponentInstance ci, short testFileRef, Rect *testRect, short testFlags)
  3880. ;
  3881.     IF ¨ GENERATINGCFM THEN
  3882.         Macro
  3883.         _SCSetTestImagePictFile
  3884.             move.l              #$00080005,-(sp)
  3885.             moveq               #0,D0
  3886.             dc.w                $A82A
  3887.         EndM
  3888.     ELSE
  3889.         IMPORT_CFM_FUNCTION SCSetTestImagePictFile
  3890.     ENDIF
  3891.  
  3892. ;
  3893. ; pascal ComponentResult SCSetTestImagePixMap(ComponentInstance ci, PixMapHandle testPixMap, Rect *testRect, short testFlags)
  3894. ;
  3895.     IF ¨ GENERATINGCFM THEN
  3896.         Macro
  3897.         _SCSetTestImagePixMap
  3898.             move.l              #$000A0006,-(sp)
  3899.             moveq               #0,D0
  3900.             dc.w                $A82A
  3901.         EndM
  3902.     ELSE
  3903.         IMPORT_CFM_FUNCTION SCSetTestImagePixMap
  3904.     ENDIF
  3905.  
  3906. ;
  3907. ; pascal ComponentResult SCGetBestDeviceRect(ComponentInstance ci, Rect *r)
  3908. ;
  3909.     IF ¨ GENERATINGCFM THEN
  3910.         Macro
  3911.         _SCGetBestDeviceRect
  3912.             move.l              #$00040007,-(sp)
  3913.             moveq               #0,D0
  3914.             dc.w                $A82A
  3915.         EndM
  3916.     ELSE
  3917.         IMPORT_CFM_FUNCTION SCGetBestDeviceRect
  3918.     ENDIF
  3919.  
  3920. ;
  3921. ; pascal ComponentResult SCRequestImageSettings(ComponentInstance ci)
  3922. ;
  3923.     IF ¨ GENERATINGCFM THEN
  3924.         Macro
  3925.         _SCRequestImageSettings
  3926.             move.l              #$0000000A,-(sp)
  3927.             moveq               #0,D0
  3928.             dc.w                $A82A
  3929.         EndM
  3930.     ELSE
  3931.         IMPORT_CFM_FUNCTION SCRequestImageSettings
  3932.     ENDIF
  3933.  
  3934. ;
  3935. ; pascal ComponentResult SCCompressImage(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle *desc, Handle *data)
  3936. ;
  3937.     IF ¨ GENERATINGCFM THEN
  3938.         Macro
  3939.         _SCCompressImage
  3940.             move.l              #$0010000B,-(sp)
  3941.             moveq               #0,D0
  3942.             dc.w                $A82A
  3943.         EndM
  3944.     ELSE
  3945.         IMPORT_CFM_FUNCTION SCCompressImage
  3946.     ENDIF
  3947.  
  3948. ;
  3949. ; pascal ComponentResult SCCompressPicture(ComponentInstance ci, PicHandle srcPicture, PicHandle dstPicture)
  3950. ;
  3951.     IF ¨ GENERATINGCFM THEN
  3952.         Macro
  3953.         _SCCompressPicture
  3954.             move.l              #$0008000C,-(sp)
  3955.             moveq               #0,D0
  3956.             dc.w                $A82A
  3957.         EndM
  3958.     ELSE
  3959.         IMPORT_CFM_FUNCTION SCCompressPicture
  3960.     ENDIF
  3961.  
  3962. ;
  3963. ; pascal ComponentResult SCCompressPictureFile(ComponentInstance ci, short srcRefNum, short dstRefNum)
  3964. ;
  3965.     IF ¨ GENERATINGCFM THEN
  3966.         Macro
  3967.         _SCCompressPictureFile
  3968.             move.l              #$0004000D,-(sp)
  3969.             moveq               #0,D0
  3970.             dc.w                $A82A
  3971.         EndM
  3972.     ELSE
  3973.         IMPORT_CFM_FUNCTION SCCompressPictureFile
  3974.     ENDIF
  3975.  
  3976. ;
  3977. ; pascal ComponentResult SCRequestSequenceSettings(ComponentInstance ci)
  3978. ;
  3979.     IF ¨ GENERATINGCFM THEN
  3980.         Macro
  3981.         _SCRequestSequenceSettings
  3982.             move.l              #$0000000E,-(sp)
  3983.             moveq               #0,D0
  3984.             dc.w                $A82A
  3985.         EndM
  3986.     ELSE
  3987.         IMPORT_CFM_FUNCTION SCRequestSequenceSettings
  3988.     ENDIF
  3989.  
  3990. ;
  3991. ; pascal ComponentResult SCCompressSequenceBegin(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle *desc)
  3992. ;
  3993.     IF ¨ GENERATINGCFM THEN
  3994.         Macro
  3995.         _SCCompressSequenceBegin
  3996.             move.l              #$000C000F,-(sp)
  3997.             moveq               #0,D0
  3998.             dc.w                $A82A
  3999.         EndM
  4000.     ELSE
  4001.         IMPORT_CFM_FUNCTION SCCompressSequenceBegin
  4002.     ENDIF
  4003.  
  4004. ;
  4005. ; pascal ComponentResult SCCompressSequenceFrame(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, Handle *data, long *dataSize, short *notSyncFlag)
  4006. ;
  4007.     IF ¨ GENERATINGCFM THEN
  4008.         Macro
  4009.         _SCCompressSequenceFrame
  4010.             move.l              #$00140010,-(sp)
  4011.             moveq               #0,D0
  4012.             dc.w                $A82A
  4013.         EndM
  4014.     ELSE
  4015.         IMPORT_CFM_FUNCTION SCCompressSequenceFrame
  4016.     ENDIF
  4017.  
  4018. ;
  4019. ; pascal ComponentResult SCCompressSequenceEnd(ComponentInstance ci)
  4020. ;
  4021.     IF ¨ GENERATINGCFM THEN
  4022.         Macro
  4023.         _SCCompressSequenceEnd
  4024.             move.l              #$00000011,-(sp)
  4025.             moveq               #0,D0
  4026.             dc.w                $A82A
  4027.         EndM
  4028.     ELSE
  4029.         IMPORT_CFM_FUNCTION SCCompressSequenceEnd
  4030.     ENDIF
  4031.  
  4032. ;
  4033. ; pascal ComponentResult SCDefaultPictHandleSettings(ComponentInstance ci, PicHandle srcPicture, short motion)
  4034. ;
  4035.     IF ¨ GENERATINGCFM THEN
  4036.         Macro
  4037.         _SCDefaultPictHandleSettings
  4038.             move.l              #$00060012,-(sp)
  4039.             moveq               #0,D0
  4040.             dc.w                $A82A
  4041.         EndM
  4042.     ELSE
  4043.         IMPORT_CFM_FUNCTION SCDefaultPictHandleSettings
  4044.     ENDIF
  4045.  
  4046. ;
  4047. ; pascal ComponentResult SCDefaultPictFileSettings(ComponentInstance ci, short srcRef, short motion)
  4048. ;
  4049.     IF ¨ GENERATINGCFM THEN
  4050.         Macro
  4051.         _SCDefaultPictFileSettings
  4052.             move.l              #$00040013,-(sp)
  4053.             moveq               #0,D0
  4054.             dc.w                $A82A
  4055.         EndM
  4056.     ELSE
  4057.         IMPORT_CFM_FUNCTION SCDefaultPictFileSettings
  4058.     ENDIF
  4059.  
  4060. ;
  4061. ; pascal ComponentResult SCDefaultPixMapSettings(ComponentInstance ci, PixMapHandle src, short motion)
  4062. ;
  4063.     IF ¨ GENERATINGCFM THEN
  4064.         Macro
  4065.         _SCDefaultPixMapSettings
  4066.             move.l              #$00060014,-(sp)
  4067.             moveq               #0,D0
  4068.             dc.w                $A82A
  4069.         EndM
  4070.     ELSE
  4071.         IMPORT_CFM_FUNCTION SCDefaultPixMapSettings
  4072.     ENDIF
  4073.  
  4074. ;
  4075. ; pascal ComponentResult SCGetInfo(ComponentInstance ci, OSType infoType, void *info)
  4076. ;
  4077.     IF ¨ GENERATINGCFM THEN
  4078.         Macro
  4079.         _SCGetInfo
  4080.             move.l              #$00080015,-(sp)
  4081.             moveq               #0,D0
  4082.             dc.w                $A82A
  4083.         EndM
  4084.     ELSE
  4085.         IMPORT_CFM_FUNCTION SCGetInfo
  4086.     ENDIF
  4087.  
  4088. ;
  4089. ; pascal ComponentResult SCSetInfo(ComponentInstance ci, OSType infoType, void *info)
  4090. ;
  4091.     IF ¨ GENERATINGCFM THEN
  4092.         Macro
  4093.         _SCSetInfo
  4094.             move.l              #$00080016,-(sp)
  4095.             moveq               #0,D0
  4096.             dc.w                $A82A
  4097.         EndM
  4098.     ELSE
  4099.         IMPORT_CFM_FUNCTION SCSetInfo
  4100.     ENDIF
  4101.  
  4102. ;
  4103. ; pascal ComponentResult SCNewGWorld(ComponentInstance ci, GWorldPtr *gwp, Rect *rp, GWorldFlags flags)
  4104. ;
  4105.     IF ¨ GENERATINGCFM THEN
  4106.         Macro
  4107.         _SCNewGWorld
  4108.             move.l              #$000C0017,-(sp)
  4109.             moveq               #0,D0
  4110.             dc.w                $A82A
  4111.         EndM
  4112.     ELSE
  4113.         IMPORT_CFM_FUNCTION SCNewGWorld
  4114.     ENDIF
  4115.  
  4116. ;
  4117. ; pascal ComponentResult SCSetCompressFlags(ComponentInstance ci, long flags)
  4118. ;
  4119.     IF ¨ GENERATINGCFM THEN
  4120.         Macro
  4121.         _SCSetCompressFlags
  4122.             move.l              #$00040018,-(sp)
  4123.             moveq               #0,D0
  4124.             dc.w                $A82A
  4125.         EndM
  4126.     ELSE
  4127.         IMPORT_CFM_FUNCTION SCSetCompressFlags
  4128.     ENDIF
  4129.  
  4130. ;
  4131. ; pascal ComponentResult SCGetCompressFlags(ComponentInstance ci, long *flags)
  4132. ;
  4133.     IF ¨ GENERATINGCFM THEN
  4134.         Macro
  4135.         _SCGetCompressFlags
  4136.             move.l              #$00040019,-(sp)
  4137.             moveq               #0,D0
  4138.             dc.w                $A82A
  4139.         EndM
  4140.     ELSE
  4141.         IMPORT_CFM_FUNCTION SCGetCompressFlags
  4142.     ENDIF
  4143.  
  4144. SCParams                RECORD 0
  4145. flags                     ds.l    1                ; offset: $0 (0)
  4146. theCodecType             ds.l    1                ; offset: $4 (4)
  4147. theCodec                 ds.l    1                ; offset: $8 (8)
  4148. spatialQuality             ds.l    1                ; offset: $C (12)
  4149. temporalQuality             ds.l    1                ; offset: $10 (16)
  4150. depth                     ds.w    1                ; offset: $14 (20)
  4151. frameRate                 ds.l    1                ; offset: $16 (22)
  4152. keyFrameRate             ds.l    1                ; offset: $1A (26)
  4153. reserved1                 ds.l    1                ; offset: $1E (30)
  4154. reserved2                 ds.l    1                ; offset: $22 (34)
  4155. sizeof                     EQU *                    ; size:   $26 (38)
  4156.                         ENDR
  4157.  
  4158. scGetCompression                EQU        1
  4159. scShowMotionSettings            EQU        $00000001
  4160. scSettingsChangedItem            EQU        -1
  4161.  
  4162. scCompressFlagIgnoreIdenticalFrames EQU    1
  4163. ;
  4164. ; pascal ComponentResult SCGetCompressionExtended(ComponentInstance ci, SCParams *params, Point where, SCModalFilterUPP filterProc, SCModalHookUPP hookProc, long refcon, StringPtr customName)
  4165. ;
  4166.     IF ¨ GENERATINGCFM THEN
  4167.         Macro
  4168.         _SCGetCompressionExtended
  4169.             move.l              #$00180001,-(sp)
  4170.             moveq               #0,D0
  4171.             dc.w                $A82A
  4172.         EndM
  4173.     ELSE
  4174.         IMPORT_CFM_FUNCTION SCGetCompressionExtended
  4175.     ENDIF
  4176.  
  4177.  
  4178. kSCPositionRectSelect            EQU        $02
  4179. kSCPositionDialogSelect            EQU        $03
  4180. kSCSetTestImagePictHandleSelect    EQU        $04
  4181. kSCSetTestImagePictFileSelect    EQU        $05
  4182. kSCSetTestImagePixMapSelect        EQU        $06
  4183. kSCGetBestDeviceRectSelect        EQU        $07
  4184. kSCRequestImageSettingsSelect    EQU        $0A
  4185. kSCCompressImageSelect            EQU        $0B
  4186. kSCCompressPictureSelect        EQU        $0C
  4187. kSCCompressPictureFileSelect    EQU        $0D
  4188. kSCRequestSequenceSettingsSelect EQU    $0E
  4189. kSCCompressSequenceBeginSelect    EQU        $0F
  4190. kSCCompressSequenceFrameSelect    EQU        $10
  4191. kSCCompressSequenceEndSelect    EQU        $11
  4192. kSCDefaultPictHandleSettingsSelect EQU    $12
  4193. kSCDefaultPictFileSettingsSelect EQU    $13
  4194. kSCDefaultPixMapSettingsSelect    EQU        $14
  4195. kSCGetInfoSelect                EQU        $15
  4196. kSCSetInfoSelect                EQU        $16
  4197. kSCNewGWorldSelect                EQU        $17
  4198. kSCSetCompressFlagsSelect        EQU        $18
  4199. kSCGetCompressFlagsSelect        EQU        $19
  4200. kSCGetCompressionExtendedSelect    EQU        $01
  4201. ; typedef ComponentInstance             MovieImportComponent
  4202.  
  4203. ; typedef ComponentInstance             MovieExportComponent
  4204.  
  4205.  
  4206. MovieImportType                    EQU        'eat '
  4207. MovieExportType                    EQU        'spit'
  4208.  
  4209. canMovieImportHandles            EQU        $01
  4210. canMovieImportFiles                EQU        $02
  4211. hasMovieImportUserInterface        EQU        $04
  4212. canMovieExportHandles            EQU        $08
  4213. canMovieExportFiles                EQU        $10
  4214. hasMovieExportUserInterface        EQU        $20
  4215. dontAutoFileMovieImport            EQU        $40
  4216. canMovieExportAuxDataHandle        EQU        $80
  4217. canMovieImportValidateHandles    EQU        $0100
  4218. canMovieImportValidateFile        EQU        $0200
  4219. dontRegisterWithEasyOpen        EQU        $0400
  4220. canMovieImportInPlace            EQU        $0800
  4221. movieImportSubTypeIsFileExtension EQU    $1000
  4222.  
  4223. kMovieImportExportOpenSelect    EQU        -1
  4224. kMovieImportExportCloseSelect    EQU        -2
  4225. kMovieImportExportCanDoSelect    EQU        -3
  4226. kMovieImportExportVersionSelect    EQU        -4
  4227. kMovieImportExportTargetSelect    EQU        -6
  4228. kMovieImportHandleSelect        EQU        1
  4229. kMovieImportFileSelect            EQU        2
  4230. kMovieImportSetSampleDurationSelect EQU    3
  4231. kMovieImportSetSampleDescriptionSelect EQU 4
  4232. kMovieImportSetMediaFileSelect    EQU        5
  4233. kMovieImportSetDimensionsSelect    EQU        6
  4234. kMovieImportSetChunkSizeSelect    EQU        7
  4235. kMovieImportSetProgressProcSelect EQU    8
  4236. kMovieImportSetAuxiliaryDataSelect EQU    9
  4237. kMovieImportSetFromScrapSelect    EQU        10
  4238. kMovieImportDoUserDialogSelect    EQU        11
  4239. kMovieImportSetDurationSelect    EQU        12
  4240. kMovieImportGetAuxiliaryDataTypeSelect EQU 13
  4241. kMovieImportValidateSelect        EQU        14
  4242. kMovieImportGetFileTypeSelect    EQU        15
  4243. kMovieExportToHandleSelect        EQU        128
  4244. kMovieExportToFileSelect        EQU        129
  4245. kMovieExportDoUserDialogSelectOBSOLETE EQU 130
  4246. kMovieExportGetAuxiliaryDataSelect EQU    131
  4247. kMovieExportSetProgressProcSelect EQU    132
  4248. kMovieExportSetSampleDescriptionSelect EQU 133
  4249. kMovieExportDoUserDialogSelect    EQU        134
  4250. kMovieExportGetCreatorTypeSelect EQU    135
  4251.  
  4252. movieImportCreateTrack            EQU        1
  4253. movieImportInParallel            EQU        2
  4254. movieImportMustUseTrack            EQU        4
  4255.  
  4256. movieImportResultUsedMultipleTracks EQU    8
  4257.  
  4258. kMovieExportTextOnly            EQU        0
  4259. kMovieExportAbsoluteTime        EQU        1
  4260. kMovieExportRelativeTime        EQU        2
  4261. ;
  4262. ; pascal ComponentResult MovieImportHandle(MovieImportComponent ci, Handle dataH, Movie theMovie, Track targetTrack, Track *usedTrack, TimeValue atTime, TimeValue *addedDuration, long inFlags, long *outFlags)
  4263. ;
  4264.     IF ¨ GENERATINGCFM THEN
  4265.         Macro
  4266.         _MovieImportHandle
  4267.             move.l              #$00200001,-(sp)
  4268.             moveq               #0,D0
  4269.             dc.w                $A82A
  4270.         EndM
  4271.     ELSE
  4272.         IMPORT_CFM_FUNCTION MovieImportHandle
  4273.     ENDIF
  4274.  
  4275. ;
  4276. ; pascal ComponentResult MovieImportFile(MovieImportComponent ci, const FSSpec *theFile, Movie theMovie, Track targetTrack, Track *usedTrack, TimeValue atTime, TimeValue *addedDuration, long inFlags, long *outFlags)
  4277. ;
  4278.     IF ¨ GENERATINGCFM THEN
  4279.         Macro
  4280.         _MovieImportFile
  4281.             move.l              #$00200002,-(sp)
  4282.             moveq               #0,D0
  4283.             dc.w                $A82A
  4284.         EndM
  4285.     ELSE
  4286.         IMPORT_CFM_FUNCTION MovieImportFile
  4287.     ENDIF
  4288.  
  4289. ;
  4290. ; pascal ComponentResult MovieImportSetSampleDuration(MovieImportComponent ci, TimeValue duration, TimeScale scale)
  4291. ;
  4292.     IF ¨ GENERATINGCFM THEN
  4293.         Macro
  4294.         _MovieImportSetSampleDuration
  4295.             move.l              #$00080003,-(sp)
  4296.             moveq               #0,D0
  4297.             dc.w                $A82A
  4298.         EndM
  4299.     ELSE
  4300.         IMPORT_CFM_FUNCTION MovieImportSetSampleDuration
  4301.     ENDIF
  4302.  
  4303. ;
  4304. ; pascal ComponentResult MovieImportSetSampleDescription(MovieImportComponent ci, SampleDescriptionHandle desc, OSType mediaType)
  4305. ;
  4306.     IF ¨ GENERATINGCFM THEN
  4307.         Macro
  4308.         _MovieImportSetSampleDescription
  4309.             move.l              #$00080004,-(sp)
  4310.             moveq               #0,D0
  4311.             dc.w                $A82A
  4312.         EndM
  4313.     ELSE
  4314.         IMPORT_CFM_FUNCTION MovieImportSetSampleDescription
  4315.     ENDIF
  4316.  
  4317. ;
  4318. ; pascal ComponentResult MovieImportSetMediaFile(MovieImportComponent ci, AliasHandle alias)
  4319. ;
  4320.     IF ¨ GENERATINGCFM THEN
  4321.         Macro
  4322.         _MovieImportSetMediaFile
  4323.             move.l              #$00040005,-(sp)
  4324.             moveq               #0,D0
  4325.             dc.w                $A82A
  4326.         EndM
  4327.     ELSE
  4328.         IMPORT_CFM_FUNCTION MovieImportSetMediaFile
  4329.     ENDIF
  4330.  
  4331. ;
  4332. ; pascal ComponentResult MovieImportSetDimensions(MovieImportComponent ci, Fixed width, Fixed height)
  4333. ;
  4334.     IF ¨ GENERATINGCFM THEN
  4335.         Macro
  4336.         _MovieImportSetDimensions
  4337.             move.l              #$00080006,-(sp)
  4338.             moveq               #0,D0
  4339.             dc.w                $A82A
  4340.         EndM
  4341.     ELSE
  4342.         IMPORT_CFM_FUNCTION MovieImportSetDimensions
  4343.     ENDIF
  4344.  
  4345. ;
  4346. ; pascal ComponentResult MovieImportSetChunkSize(MovieImportComponent ci, long chunkSize)
  4347. ;
  4348.     IF ¨ GENERATINGCFM THEN
  4349.         Macro
  4350.         _MovieImportSetChunkSize
  4351.             move.l              #$00040007,-(sp)
  4352.             moveq               #0,D0
  4353.             dc.w                $A82A
  4354.         EndM
  4355.     ELSE
  4356.         IMPORT_CFM_FUNCTION MovieImportSetChunkSize
  4357.     ENDIF
  4358.  
  4359. ;
  4360. ; pascal ComponentResult MovieImportSetProgressProc(MovieImportComponent ci, MovieProgressUPP proc, long refcon)
  4361. ;
  4362.     IF ¨ GENERATINGCFM THEN
  4363.         Macro
  4364.         _MovieImportSetProgressProc
  4365.             move.l              #$00080008,-(sp)
  4366.             moveq               #0,D0
  4367.             dc.w                $A82A
  4368.         EndM
  4369.     ELSE
  4370.         IMPORT_CFM_FUNCTION MovieImportSetProgressProc
  4371.     ENDIF
  4372.  
  4373. ;
  4374. ; pascal ComponentResult MovieImportSetAuxiliaryData(MovieImportComponent ci, Handle data, OSType handleType)
  4375. ;
  4376.     IF ¨ GENERATINGCFM THEN
  4377.         Macro
  4378.         _MovieImportSetAuxiliaryData
  4379.             move.l              #$00080009,-(sp)
  4380.             moveq               #0,D0
  4381.             dc.w                $A82A
  4382.         EndM
  4383.     ELSE
  4384.         IMPORT_CFM_FUNCTION MovieImportSetAuxiliaryData
  4385.     ENDIF
  4386.  
  4387. ;
  4388. ; pascal ComponentResult MovieImportSetFromScrap(MovieImportComponent ci, Boolean fromScrap)
  4389. ;
  4390.     IF ¨ GENERATINGCFM THEN
  4391.         Macro
  4392.         _MovieImportSetFromScrap
  4393.             move.l              #$0002000A,-(sp)
  4394.             moveq               #0,D0
  4395.             dc.w                $A82A
  4396.         EndM
  4397.     ELSE
  4398.         IMPORT_CFM_FUNCTION MovieImportSetFromScrap
  4399.     ENDIF
  4400.  
  4401. ;
  4402. ; pascal ComponentResult MovieImportDoUserDialog(MovieImportComponent ci, const FSSpec *theFile, Handle theData, Boolean *canceled)
  4403. ;
  4404.     IF ¨ GENERATINGCFM THEN
  4405.         Macro
  4406.         _MovieImportDoUserDialog
  4407.             move.l              #$000C000B,-(sp)
  4408.             moveq               #0,D0
  4409.             dc.w                $A82A
  4410.         EndM
  4411.     ELSE
  4412.         IMPORT_CFM_FUNCTION MovieImportDoUserDialog
  4413.     ENDIF
  4414.  
  4415. ;
  4416. ; pascal ComponentResult MovieImportSetDuration(MovieImportComponent ci, TimeValue duration)
  4417. ;
  4418.     IF ¨ GENERATINGCFM THEN
  4419.         Macro
  4420.         _MovieImportSetDuration
  4421.             move.l              #$0004000C,-(sp)
  4422.             moveq               #0,D0
  4423.             dc.w                $A82A
  4424.         EndM
  4425.     ELSE
  4426.         IMPORT_CFM_FUNCTION MovieImportSetDuration
  4427.     ENDIF
  4428.  
  4429. ;
  4430. ; pascal ComponentResult MovieImportGetAuxiliaryDataType(MovieImportComponent ci, OSType *auxType)
  4431. ;
  4432.     IF ¨ GENERATINGCFM THEN
  4433.         Macro
  4434.         _MovieImportGetAuxiliaryDataType
  4435.             move.l              #$0004000D,-(sp)
  4436.             moveq               #0,D0
  4437.             dc.w                $A82A
  4438.         EndM
  4439.     ELSE
  4440.         IMPORT_CFM_FUNCTION MovieImportGetAuxiliaryDataType
  4441.     ENDIF
  4442.  
  4443. ;
  4444. ; pascal ComponentResult MovieImportValidate(MovieImportComponent ci, const FSSpec *theFile, Handle theData, Boolean *valid)
  4445. ;
  4446.     IF ¨ GENERATINGCFM THEN
  4447.         Macro
  4448.         _MovieImportValidate
  4449.             move.l              #$000C000E,-(sp)
  4450.             moveq               #0,D0
  4451.             dc.w                $A82A
  4452.         EndM
  4453.     ELSE
  4454.         IMPORT_CFM_FUNCTION MovieImportValidate
  4455.     ENDIF
  4456.  
  4457. ;
  4458. ; pascal ComponentResult MovieImportGetFileType(MovieImportComponent ci, OSType *fileType)
  4459. ;
  4460.     IF ¨ GENERATINGCFM THEN
  4461.         Macro
  4462.         _MovieImportGetFileType
  4463.             move.l              #$0004000F,-(sp)
  4464.             moveq               #0,D0
  4465.             dc.w                $A82A
  4466.         EndM
  4467.     ELSE
  4468.         IMPORT_CFM_FUNCTION MovieImportGetFileType
  4469.     ENDIF
  4470.  
  4471. ;
  4472. ; pascal ComponentResult MovieExportToHandle(MovieExportComponent ci, Handle dataH, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration)
  4473. ;
  4474.     IF ¨ GENERATINGCFM THEN
  4475.         Macro
  4476.         _MovieExportToHandle
  4477.             move.l              #$00140080,-(sp)
  4478.             moveq               #0,D0
  4479.             dc.w                $A82A
  4480.         EndM
  4481.     ELSE
  4482.         IMPORT_CFM_FUNCTION MovieExportToHandle
  4483.     ENDIF
  4484.  
  4485. ;
  4486. ; pascal ComponentResult MovieExportToFile(MovieExportComponent ci, const FSSpec *theFile, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration)
  4487. ;
  4488.     IF ¨ GENERATINGCFM THEN
  4489.         Macro
  4490.         _MovieExportToFile
  4491.             move.l              #$00140081,-(sp)
  4492.             moveq               #0,D0
  4493.             dc.w                $A82A
  4494.         EndM
  4495.     ELSE
  4496.         IMPORT_CFM_FUNCTION MovieExportToFile
  4497.     ENDIF
  4498.  
  4499. ;
  4500. ; pascal ComponentResult MovieExportGetAuxiliaryData(MovieExportComponent ci, Handle dataH, OSType *handleType)
  4501. ;
  4502.     IF ¨ GENERATINGCFM THEN
  4503.         Macro
  4504.         _MovieExportGetAuxiliaryData
  4505.             move.l              #$00080083,-(sp)
  4506.             moveq               #0,D0
  4507.             dc.w                $A82A
  4508.         EndM
  4509.     ELSE
  4510.         IMPORT_CFM_FUNCTION MovieExportGetAuxiliaryData
  4511.     ENDIF
  4512.  
  4513. ;
  4514. ; pascal ComponentResult MovieExportSetProgressProc(MovieExportComponent ci, MovieProgressUPP proc, long refcon)
  4515. ;
  4516.     IF ¨ GENERATINGCFM THEN
  4517.         Macro
  4518.         _MovieExportSetProgressProc
  4519.             move.l              #$00080084,-(sp)
  4520.             moveq               #0,D0
  4521.             dc.w                $A82A
  4522.         EndM
  4523.     ELSE
  4524.         IMPORT_CFM_FUNCTION MovieExportSetProgressProc
  4525.     ENDIF
  4526.  
  4527. ;
  4528. ; pascal ComponentResult MovieExportSetSampleDescription(MovieExportComponent ci, SampleDescriptionHandle desc, OSType mediaType)
  4529. ;
  4530.     IF ¨ GENERATINGCFM THEN
  4531.         Macro
  4532.         _MovieExportSetSampleDescription
  4533.             move.l              #$00080085,-(sp)
  4534.             moveq               #0,D0
  4535.             dc.w                $A82A
  4536.         EndM
  4537.     ELSE
  4538.         IMPORT_CFM_FUNCTION MovieExportSetSampleDescription
  4539.     ENDIF
  4540.  
  4541. ;
  4542. ; pascal ComponentResult MovieExportDoUserDialog(MovieExportComponent ci, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration, Boolean *canceled)
  4543. ;
  4544.     IF ¨ GENERATINGCFM THEN
  4545.         Macro
  4546.         _MovieExportDoUserDialog
  4547.             move.l              #$00140086,-(sp)
  4548.             moveq               #0,D0
  4549.             dc.w                $A82A
  4550.         EndM
  4551.     ELSE
  4552.         IMPORT_CFM_FUNCTION MovieExportDoUserDialog
  4553.     ENDIF
  4554.  
  4555. ;
  4556. ; pascal ComponentResult MovieExportGetCreatorType(MovieExportComponent ci, OSType *creator)
  4557. ;
  4558.     IF ¨ GENERATINGCFM THEN
  4559.         Macro
  4560.         _MovieExportGetCreatorType
  4561.             move.l              #$00040087,-(sp)
  4562.             moveq               #0,D0
  4563.             dc.w                $A82A
  4564.         EndM
  4565.     ELSE
  4566.         IMPORT_CFM_FUNCTION MovieExportGetCreatorType
  4567.     ENDIF
  4568.  
  4569.      IF ¨ GENERATINGPOWERPC THEN 
  4570. ;  Text Export Display Info data structure
  4571. TextDisplayData            RECORD 0
  4572. displayFlags             ds.l    1                ; offset: $0 (0)
  4573. textJustification         ds.l    1                ; offset: $4 (4)
  4574. bgColor                     ds        RGBColor        ; offset: $8 (8)
  4575. textBox                     ds        Rect            ; offset: $E (14)
  4576. beginHilite                 ds.w    1                ; offset: $16 (22)
  4577. endHilite                 ds.w    1                ; offset: $18 (24)
  4578. hiliteColor                 ds        RGBColor        ; offset: $1A (26)
  4579. doHiliteColor             ds.b    1                ; offset: $20 (32)
  4580. filler                     ds.b    1                ; offset: $21 (33)
  4581. scrollDelayDur             ds.l    1                ; offset: $22 (34)
  4582. dropShadowOffset         ds        Point            ; offset: $26 (38)
  4583. dropShadowTransparency     ds.w    1                ; offset: $2A (42)
  4584. sizeof                     EQU *                    ; size:   $2C (44)
  4585.                         ENDR
  4586.     ENDIF
  4587. ; typedef ComponentInstance             TextExportComponent
  4588.  
  4589. ;
  4590. ; pascal ComponentResult TextExportGetDisplayData(TextExportComponent ci, TextDisplayData *textDisplay)
  4591. ;
  4592.     IF ¨ GENERATINGCFM THEN
  4593.         Macro
  4594.         _TextExportGetDisplayData
  4595.             move.l              #$00040100,-(sp)
  4596.             moveq               #0,D0
  4597.             dc.w                $A82A
  4598.         EndM
  4599.     ELSE
  4600.         IMPORT_CFM_FUNCTION TextExportGetDisplayData
  4601.     ENDIF
  4602.  
  4603. ;
  4604. ; pascal ComponentResult TextExportGetTimeFraction(TextExportComponent ci, long *movieTimeFraction)
  4605. ;
  4606.     IF ¨ GENERATINGCFM THEN
  4607.         Macro
  4608.         _TextExportGetTimeFraction
  4609.             move.l              #$00040101,-(sp)
  4610.             moveq               #0,D0
  4611.             dc.w                $A82A
  4612.         EndM
  4613.     ELSE
  4614.         IMPORT_CFM_FUNCTION TextExportGetTimeFraction
  4615.     ENDIF
  4616.  
  4617. ;
  4618. ; pascal ComponentResult TextExportSetTimeFraction(TextExportComponent ci, long movieTimeFraction)
  4619. ;
  4620.     IF ¨ GENERATINGCFM THEN
  4621.         Macro
  4622.         _TextExportSetTimeFraction
  4623.             move.l              #$00040102,-(sp)
  4624.             moveq               #0,D0
  4625.             dc.w                $A82A
  4626.         EndM
  4627.     ELSE
  4628.         IMPORT_CFM_FUNCTION TextExportSetTimeFraction
  4629.     ENDIF
  4630.  
  4631. ;
  4632. ; pascal ComponentResult TextExportGetSettings(TextExportComponent ci, long *setting)
  4633. ;
  4634.     IF ¨ GENERATINGCFM THEN
  4635.         Macro
  4636.         _TextExportGetSettings
  4637.             move.l              #$00040103,-(sp)
  4638.             moveq               #0,D0
  4639.             dc.w                $A82A
  4640.         EndM
  4641.     ELSE
  4642.         IMPORT_CFM_FUNCTION TextExportGetSettings
  4643.     ENDIF
  4644.  
  4645. ;
  4646. ; pascal ComponentResult TextExportSetSettings(TextExportComponent ci, long setting)
  4647. ;
  4648.     IF ¨ GENERATINGCFM THEN
  4649.         Macro
  4650.         _TextExportSetSettings
  4651.             move.l              #$00040104,-(sp)
  4652.             moveq               #0,D0
  4653.             dc.w                $A82A
  4654.         EndM
  4655.     ELSE
  4656.         IMPORT_CFM_FUNCTION TextExportSetSettings
  4657.     ENDIF
  4658.  
  4659. ;
  4660. ;**************
  4661. ;
  4662. ;    File Preview Components
  4663. ;
  4664. ;**************
  4665. ;
  4666. ; typedef ComponentInstance             pnotComponent
  4667.  
  4668.  
  4669. pnotComponentWantsEvents        EQU        1
  4670. pnotComponentNeedsNoCache        EQU        2
  4671.  
  4672. kPreviewOpenSelector            EQU        0
  4673. kPreviewCloseSelector            EQU        -1
  4674. kPreviewCanDoSelector            EQU        -2
  4675. kPreviewVersionSelector            EQU        -3
  4676. kPreviewShowDataSelector        EQU        1
  4677. kPreviewMakePreviewSelector        EQU        2
  4678. kPreviewMakePreviewReferenceSelector EQU 3
  4679. kPreviewEventSelector            EQU        4
  4680.  
  4681. ShowFilePreviewComponentType    EQU        'pnot'
  4682. CreateFilePreviewComponentType    EQU        'pmak'
  4683. ;
  4684. ; pascal ComponentResult PreviewShowData(pnotComponent p, OSType dataType, Handle data, const Rect *inHere)
  4685. ;
  4686.     IF ¨ GENERATINGCFM THEN
  4687.         Macro
  4688.         _PreviewShowData
  4689.             move.l              #$000C0001,-(sp)
  4690.             moveq               #0,D0
  4691.             dc.w                $A82A
  4692.         EndM
  4693.     ELSE
  4694.         IMPORT_CFM_FUNCTION PreviewShowData
  4695.     ENDIF
  4696.  
  4697. ;
  4698. ; pascal ComponentResult PreviewMakePreview(pnotComponent p, OSType *previewType, Handle *previewResult, const FSSpec *sourceFile, ICMProgressProcRecordPtr progress)
  4699. ;
  4700.     IF ¨ GENERATINGCFM THEN
  4701.         Macro
  4702.         _PreviewMakePreview
  4703.             move.l              #$00100002,-(sp)
  4704.             moveq               #0,D0
  4705.             dc.w                $A82A
  4706.         EndM
  4707.     ELSE
  4708.         IMPORT_CFM_FUNCTION PreviewMakePreview
  4709.     ENDIF
  4710.  
  4711. ;
  4712. ; pascal ComponentResult PreviewMakePreviewReference(pnotComponent p, OSType *previewType, short *resID, const FSSpec *sourceFile)
  4713. ;
  4714.     IF ¨ GENERATINGCFM THEN
  4715.         Macro
  4716.         _PreviewMakePreviewReference
  4717.             move.l              #$000C0003,-(sp)
  4718.             moveq               #0,D0
  4719.             dc.w                $A82A
  4720.         EndM
  4721.     ELSE
  4722.         IMPORT_CFM_FUNCTION PreviewMakePreviewReference
  4723.     ENDIF
  4724.  
  4725. ;
  4726. ; pascal ComponentResult PreviewEvent(pnotComponent p, EventRecord *e, Boolean *handledEvent)
  4727. ;
  4728.     IF ¨ GENERATINGCFM THEN
  4729.         Macro
  4730.         _PreviewEvent
  4731.             move.l              #$00080004,-(sp)
  4732.             moveq               #0,D0
  4733.             dc.w                $A82A
  4734.         EndM
  4735.     ELSE
  4736.         IMPORT_CFM_FUNCTION PreviewEvent
  4737.     ENDIF
  4738.  
  4739.  
  4740. kDataHCanRead                    EQU        $00000001
  4741. kDataHSpecialRead                EQU        $00000002
  4742. kDataHSpecialReadFile            EQU        $00000004
  4743. kDataHCanWrite                    EQU        $00000008
  4744. kDataHSpecialWrite                EQU        $10
  4745. kDataHSpecialWriteFile            EQU        $20
  4746. kDataHCanStreamingWrite            EQU        $40
  4747. kDataHMustCheckDataRef            EQU        $80
  4748. DataHVolumeListRecord    RECORD 0
  4749. vRefNum                     ds.w    1                ; offset: $0 (0)
  4750. flags                     ds.l    1                ; offset: $2 (2)
  4751. sizeof                     EQU *                    ; size:   $6 (6)
  4752.                         ENDR
  4753. ; typedef struct DataHVolumeListRecord * DataHVolumeListPtr
  4754.  
  4755. ; typedef DataHVolumeListPtr *            DataHVolumeList
  4756.  
  4757.  
  4758. kDataHExtendedSchedule            EQU        'xtnd'
  4759. DataHScheduleRecord        RECORD 0
  4760. timeNeededBy             ds        TimeRecord        ; offset: $0 (0)
  4761. extendedID                 ds.l    1                ; offset: $10 (16)        ;  always is kDataHExtendedSchedule
  4762. extendedVers             ds.l    1                ; offset: $14 (20)        ;  always set to 0
  4763. priority                 ds.l    1                ; offset: $18 (24)        ;  100.0 or more means must have. lower numbers...
  4764. sizeof                     EQU *                    ; size:   $1C (28)
  4765.                         ENDR
  4766. ; typedef struct DataHScheduleRecord *    DataHSchedulePtr
  4767.  
  4768. ;
  4769. ; pascal ComponentResult DataHGetData(DataHandler dh, Handle h, long hOffset, long offset, long size)
  4770. ;
  4771.     IF ¨ GENERATINGCFM THEN
  4772.         Macro
  4773.         _DataHGetData
  4774.             move.l              #$00100002,-(sp)
  4775.             moveq               #0,D0
  4776.             dc.w                $A82A
  4777.         EndM
  4778.     ELSE
  4779.         IMPORT_CFM_FUNCTION DataHGetData
  4780.     ENDIF
  4781.  
  4782. ;
  4783. ; pascal ComponentResult DataHPutData(DataHandler dh, Handle h, long hOffset, long *offset, long size)
  4784. ;
  4785.     IF ¨ GENERATINGCFM THEN
  4786.         Macro
  4787.         _DataHPutData
  4788.             move.l              #$00100003,-(sp)
  4789.             moveq               #0,D0
  4790.             dc.w                $A82A
  4791.         EndM
  4792.     ELSE
  4793.         IMPORT_CFM_FUNCTION DataHPutData
  4794.     ENDIF
  4795.  
  4796. ;
  4797. ; pascal ComponentResult DataHFlushData(DataHandler dh)
  4798. ;
  4799.     IF ¨ GENERATINGCFM THEN
  4800.         Macro
  4801.         _DataHFlushData
  4802.             move.l              #$00000004,-(sp)
  4803.             moveq               #0,D0
  4804.             dc.w                $A82A
  4805.         EndM
  4806.     ELSE
  4807.         IMPORT_CFM_FUNCTION DataHFlushData
  4808.     ENDIF
  4809.  
  4810. ;
  4811. ; pascal ComponentResult DataHOpenForWrite(DataHandler dh)
  4812. ;
  4813.     IF ¨ GENERATINGCFM THEN
  4814.         Macro
  4815.         _DataHOpenForWrite
  4816.             move.l              #$00000005,-(sp)
  4817.             moveq               #0,D0
  4818.             dc.w                $A82A
  4819.         EndM
  4820.     ELSE
  4821.         IMPORT_CFM_FUNCTION DataHOpenForWrite
  4822.     ENDIF
  4823.  
  4824. ;
  4825. ; pascal ComponentResult DataHCloseForWrite(DataHandler dh)
  4826. ;
  4827.     IF ¨ GENERATINGCFM THEN
  4828.         Macro
  4829.         _DataHCloseForWrite
  4830.             move.l              #$00000006,-(sp)
  4831.             moveq               #0,D0
  4832.             dc.w                $A82A
  4833.         EndM
  4834.     ELSE
  4835.         IMPORT_CFM_FUNCTION DataHCloseForWrite
  4836.     ENDIF
  4837.  
  4838. ;
  4839. ; pascal ComponentResult DataHOpenForRead(DataHandler dh)
  4840. ;
  4841.     IF ¨ GENERATINGCFM THEN
  4842.         Macro
  4843.         _DataHOpenForRead
  4844.             move.l              #$00000008,-(sp)
  4845.             moveq               #0,D0
  4846.             dc.w                $A82A
  4847.         EndM
  4848.     ELSE
  4849.         IMPORT_CFM_FUNCTION DataHOpenForRead
  4850.     ENDIF
  4851.  
  4852. ;
  4853. ; pascal ComponentResult DataHCloseForRead(DataHandler dh)
  4854. ;
  4855.     IF ¨ GENERATINGCFM THEN
  4856.         Macro
  4857.         _DataHCloseForRead
  4858.             move.l              #$00000009,-(sp)
  4859.             moveq               #0,D0
  4860.             dc.w                $A82A
  4861.         EndM
  4862.     ELSE
  4863.         IMPORT_CFM_FUNCTION DataHCloseForRead
  4864.     ENDIF
  4865.  
  4866. ;
  4867. ; pascal ComponentResult DataHSetDataRef(DataHandler dh, Handle dataRef)
  4868. ;
  4869.     IF ¨ GENERATINGCFM THEN
  4870.         Macro
  4871.         _DataHSetDataRef
  4872.             move.l              #$0004000A,-(sp)
  4873.             moveq               #0,D0
  4874.             dc.w                $A82A
  4875.         EndM
  4876.     ELSE
  4877.         IMPORT_CFM_FUNCTION DataHSetDataRef
  4878.     ENDIF
  4879.  
  4880. ;
  4881. ; pascal ComponentResult DataHGetDataRef(DataHandler dh, Handle *dataRef)
  4882. ;
  4883.     IF ¨ GENERATINGCFM THEN
  4884.         Macro
  4885.         _DataHGetDataRef
  4886.             move.l              #$0004000B,-(sp)
  4887.             moveq               #0,D0
  4888.             dc.w                $A82A
  4889.         EndM
  4890.     ELSE
  4891.         IMPORT_CFM_FUNCTION DataHGetDataRef
  4892.     ENDIF
  4893.  
  4894. ;
  4895. ; pascal ComponentResult DataHCompareDataRef(DataHandler dh, Handle dataRef, Boolean *equal)
  4896. ;
  4897.     IF ¨ GENERATINGCFM THEN
  4898.         Macro
  4899.         _DataHCompareDataRef
  4900.             move.l              #$0008000C,-(sp)
  4901.             moveq               #0,D0
  4902.             dc.w                $A82A
  4903.         EndM
  4904.     ELSE
  4905.         IMPORT_CFM_FUNCTION DataHCompareDataRef
  4906.     ENDIF
  4907.  
  4908. ;
  4909. ; pascal ComponentResult DataHTask(DataHandler dh)
  4910. ;
  4911.     IF ¨ GENERATINGCFM THEN
  4912.         Macro
  4913.         _DataHTask
  4914.             move.l              #$0000000D,-(sp)
  4915.             moveq               #0,D0
  4916.             dc.w                $A82A
  4917.         EndM
  4918.     ELSE
  4919.         IMPORT_CFM_FUNCTION DataHTask
  4920.     ENDIF
  4921.  
  4922. ;
  4923. ; pascal ComponentResult DataHScheduleData(DataHandler dh, Ptr PlaceToPutDataPtr, long FileOffset, long DataSize, long RefCon, DataHSchedulePtr scheduleRec, DataHCompletionUPP CompletionRtn)
  4924. ;
  4925.     IF ¨ GENERATINGCFM THEN
  4926.         Macro
  4927.         _DataHScheduleData
  4928.             move.l              #$0018000E,-(sp)
  4929.             moveq               #0,D0
  4930.             dc.w                $A82A
  4931.         EndM
  4932.     ELSE
  4933.         IMPORT_CFM_FUNCTION DataHScheduleData
  4934.     ENDIF
  4935.  
  4936. ;
  4937. ; pascal ComponentResult DataHFinishData(DataHandler dh, Ptr PlaceToPutDataPtr, Boolean Cancel)
  4938. ;
  4939.     IF ¨ GENERATINGCFM THEN
  4940.         Macro
  4941.         _DataHFinishData
  4942.             move.l              #$0006000F,-(sp)
  4943.             moveq               #0,D0
  4944.             dc.w                $A82A
  4945.         EndM
  4946.     ELSE
  4947.         IMPORT_CFM_FUNCTION DataHFinishData
  4948.     ENDIF
  4949.  
  4950. ;
  4951. ; pascal ComponentResult DataHFlushCache(DataHandler dh)
  4952. ;
  4953.     IF ¨ GENERATINGCFM THEN
  4954.         Macro
  4955.         _DataHFlushCache
  4956.             move.l              #$00000010,-(sp)
  4957.             moveq               #0,D0
  4958.             dc.w                $A82A
  4959.         EndM
  4960.     ELSE
  4961.         IMPORT_CFM_FUNCTION DataHFlushCache
  4962.     ENDIF
  4963.  
  4964. ;
  4965. ; pascal ComponentResult DataHResolveDataRef(DataHandler dh, Handle theDataRef, Boolean *wasChanged, Boolean userInterfaceAllowed)
  4966. ;
  4967.     IF ¨ GENERATINGCFM THEN
  4968.         Macro
  4969.         _DataHResolveDataRef
  4970.             move.l              #$000A0011,-(sp)
  4971.             moveq               #0,D0
  4972.             dc.w                $A82A
  4973.         EndM
  4974.     ELSE
  4975.         IMPORT_CFM_FUNCTION DataHResolveDataRef
  4976.     ENDIF
  4977.  
  4978. ;
  4979. ; pascal ComponentResult DataHGetFileSize(DataHandler dh, long *fileSize)
  4980. ;
  4981.     IF ¨ GENERATINGCFM THEN
  4982.         Macro
  4983.         _DataHGetFileSize
  4984.             move.l              #$00040012,-(sp)
  4985.             moveq               #0,D0
  4986.             dc.w                $A82A
  4987.         EndM
  4988.     ELSE
  4989.         IMPORT_CFM_FUNCTION DataHGetFileSize
  4990.     ENDIF
  4991.  
  4992. ;
  4993. ; pascal ComponentResult DataHCanUseDataRef(DataHandler dh, Handle dataRef, long *useFlags)
  4994. ;
  4995.     IF ¨ GENERATINGCFM THEN
  4996.         Macro
  4997.         _DataHCanUseDataRef
  4998.             move.l              #$00080013,-(sp)
  4999.             moveq               #0,D0
  5000.             dc.w                $A82A
  5001.         EndM
  5002.     ELSE
  5003.         IMPORT_CFM_FUNCTION DataHCanUseDataRef
  5004.     ENDIF
  5005.  
  5006. ;
  5007. ; pascal ComponentResult DataHGetVolumeList(DataHandler dh, DataHVolumeList *volumeList)
  5008. ;
  5009.     IF ¨ GENERATINGCFM THEN
  5010.         Macro
  5011.         _DataHGetVolumeList
  5012.             move.l              #$00040014,-(sp)
  5013.             moveq               #0,D0
  5014.             dc.w                $A82A
  5015.         EndM
  5016.     ELSE
  5017.         IMPORT_CFM_FUNCTION DataHGetVolumeList
  5018.     ENDIF
  5019.  
  5020. ;
  5021. ; pascal ComponentResult DataHWrite(DataHandler dh, Ptr data, long offset, long size, DataHCompletionUPP completion, long refCon)
  5022. ;
  5023.     IF ¨ GENERATINGCFM THEN
  5024.         Macro
  5025.         _DataHWrite
  5026.             move.l              #$00140015,-(sp)
  5027.             moveq               #0,D0
  5028.             dc.w                $A82A
  5029.         EndM
  5030.     ELSE
  5031.         IMPORT_CFM_FUNCTION DataHWrite
  5032.     ENDIF
  5033.  
  5034. ;
  5035. ; pascal ComponentResult DataHPreextend(DataHandler dh, long maxToAdd, long *spaceAdded)
  5036. ;
  5037.     IF ¨ GENERATINGCFM THEN
  5038.         Macro
  5039.         _DataHPreextend
  5040.             move.l              #$00080016,-(sp)
  5041.             moveq               #0,D0
  5042.             dc.w                $A82A
  5043.         EndM
  5044.     ELSE
  5045.         IMPORT_CFM_FUNCTION DataHPreextend
  5046.     ENDIF
  5047.  
  5048. ;
  5049. ; pascal ComponentResult DataHSetFileSize(DataHandler dh, long fileSize)
  5050. ;
  5051.     IF ¨ GENERATINGCFM THEN
  5052.         Macro
  5053.         _DataHSetFileSize
  5054.             move.l              #$00040017,-(sp)
  5055.             moveq               #0,D0
  5056.             dc.w                $A82A
  5057.         EndM
  5058.     ELSE
  5059.         IMPORT_CFM_FUNCTION DataHSetFileSize
  5060.     ENDIF
  5061.  
  5062. ;
  5063. ; pascal ComponentResult DataHGetFreeSpace(DataHandler dh, unsigned long *freeSize)
  5064. ;
  5065.     IF ¨ GENERATINGCFM THEN
  5066.         Macro
  5067.         _DataHGetFreeSpace
  5068.             move.l              #$00040018,-(sp)
  5069.             moveq               #0,D0
  5070.             dc.w                $A82A
  5071.         EndM
  5072.     ELSE
  5073.         IMPORT_CFM_FUNCTION DataHGetFreeSpace
  5074.     ENDIF
  5075.  
  5076. ;
  5077. ; pascal ComponentResult DataHCreateFile(DataHandler dh, OSType creator, Boolean deleteExisting)
  5078. ;
  5079.     IF ¨ GENERATINGCFM THEN
  5080.         Macro
  5081.         _DataHCreateFile
  5082.             move.l              #$00060019,-(sp)
  5083.             moveq               #0,D0
  5084.             dc.w                $A82A
  5085.         EndM
  5086.     ELSE
  5087.         IMPORT_CFM_FUNCTION DataHCreateFile
  5088.     ENDIF
  5089.  
  5090. ;
  5091. ; pascal ComponentResult DataHGetPreferredBlockSize(DataHandler dh, long *blockSize)
  5092. ;
  5093.     IF ¨ GENERATINGCFM THEN
  5094.         Macro
  5095.         _DataHGetPreferredBlockSize
  5096.             move.l              #$0004001A,-(sp)
  5097.             moveq               #0,D0
  5098.             dc.w                $A82A
  5099.         EndM
  5100.     ELSE
  5101.         IMPORT_CFM_FUNCTION DataHGetPreferredBlockSize
  5102.     ENDIF
  5103.  
  5104. ;
  5105. ; pascal ComponentResult DataHGetDeviceIndex(DataHandler dh, long *deviceIndex)
  5106. ;
  5107.     IF ¨ GENERATINGCFM THEN
  5108.         Macro
  5109.         _DataHGetDeviceIndex
  5110.             move.l              #$0004001B,-(sp)
  5111.             moveq               #0,D0
  5112.             dc.w                $A82A
  5113.         EndM
  5114.     ELSE
  5115.         IMPORT_CFM_FUNCTION DataHGetDeviceIndex
  5116.     ENDIF
  5117.  
  5118. ;
  5119. ; pascal ComponentResult DataHIsStreamingDataHandler(DataHandler dh, Boolean *yes)
  5120. ;
  5121.     IF ¨ GENERATINGCFM THEN
  5122.         Macro
  5123.         _DataHIsStreamingDataHandler
  5124.             move.l              #$0004001C,-(sp)
  5125.             moveq               #0,D0
  5126.             dc.w                $A82A
  5127.         EndM
  5128.     ELSE
  5129.         IMPORT_CFM_FUNCTION DataHIsStreamingDataHandler
  5130.     ENDIF
  5131.  
  5132. ;
  5133. ; pascal ComponentResult DataHGetDataInBuffer(DataHandler dh, long startOffset, long *size)
  5134. ;
  5135.     IF ¨ GENERATINGCFM THEN
  5136.         Macro
  5137.         _DataHGetDataInBuffer
  5138.             move.l              #$0008001D,-(sp)
  5139.             moveq               #0,D0
  5140.             dc.w                $A82A
  5141.         EndM
  5142.     ELSE
  5143.         IMPORT_CFM_FUNCTION DataHGetDataInBuffer
  5144.     ENDIF
  5145.  
  5146. ;
  5147. ; pascal ComponentResult DataHGetScheduleAheadTime(DataHandler dh, long *millisecs)
  5148. ;
  5149.     IF ¨ GENERATINGCFM THEN
  5150.         Macro
  5151.         _DataHGetScheduleAheadTime
  5152.             move.l              #$0004001E,-(sp)
  5153.             moveq               #0,D0
  5154.             dc.w                $A82A
  5155.         EndM
  5156.     ELSE
  5157.         IMPORT_CFM_FUNCTION DataHGetScheduleAheadTime
  5158.     ENDIF
  5159.  
  5160. ;
  5161. ; pascal ComponentResult DataHSetCacheSizeLimit(DataHandler dh, Size cacheSizeLimit)
  5162. ;
  5163.     IF ¨ GENERATINGCFM THEN
  5164.         Macro
  5165.         _DataHSetCacheSizeLimit
  5166.             move.l              #$0004001F,-(sp)
  5167.             moveq               #0,D0
  5168.             dc.w                $A82A
  5169.         EndM
  5170.     ELSE
  5171.         IMPORT_CFM_FUNCTION DataHSetCacheSizeLimit
  5172.     ENDIF
  5173.  
  5174. ;
  5175. ; pascal ComponentResult DataHGetCacheSizeLimit(DataHandler dh, Size *cacheSizeLimit)
  5176. ;
  5177.     IF ¨ GENERATINGCFM THEN
  5178.         Macro
  5179.         _DataHGetCacheSizeLimit
  5180.             move.l              #$00040020,-(sp)
  5181.             moveq               #0,D0
  5182.             dc.w                $A82A
  5183.         EndM
  5184.     ELSE
  5185.         IMPORT_CFM_FUNCTION DataHGetCacheSizeLimit
  5186.     ENDIF
  5187.  
  5188. ;
  5189. ; pascal ComponentResult DataHGetMovie(DataHandler dh, Movie *theMovie, short *id)
  5190. ;
  5191.     IF ¨ GENERATINGCFM THEN
  5192.         Macro
  5193.         _DataHGetMovie
  5194.             move.l              #$00080021,-(sp)
  5195.             moveq               #0,D0
  5196.             dc.w                $A82A
  5197.         EndM
  5198.     ELSE
  5199.         IMPORT_CFM_FUNCTION DataHGetMovie
  5200.     ENDIF
  5201.  
  5202. ;
  5203. ; pascal ComponentResult DataHAddMovie(DataHandler dh, Movie theMovie, short *id)
  5204. ;
  5205.     IF ¨ GENERATINGCFM THEN
  5206.         Macro
  5207.         _DataHAddMovie
  5208.             move.l              #$00080022,-(sp)
  5209.             moveq               #0,D0
  5210.             dc.w                $A82A
  5211.         EndM
  5212.     ELSE
  5213.         IMPORT_CFM_FUNCTION DataHAddMovie
  5214.     ENDIF
  5215.  
  5216. ;
  5217. ; pascal ComponentResult DataHUpdateMovie(DataHandler dh, Movie theMovie, short id)
  5218. ;
  5219.     IF ¨ GENERATINGCFM THEN
  5220.         Macro
  5221.         _DataHUpdateMovie
  5222.             move.l              #$00060023,-(sp)
  5223.             moveq               #0,D0
  5224.             dc.w                $A82A
  5225.         EndM
  5226.     ELSE
  5227.         IMPORT_CFM_FUNCTION DataHUpdateMovie
  5228.     ENDIF
  5229.  
  5230. ;
  5231. ; pascal ComponentResult DataHDoesBuffer(DataHandler dh, Boolean *buffersReads, Boolean *buffersWrites)
  5232. ;
  5233.     IF ¨ GENERATINGCFM THEN
  5234.         Macro
  5235.         _DataHDoesBuffer
  5236.             move.l              #$00080024,-(sp)
  5237.             moveq               #0,D0
  5238.             dc.w                $A82A
  5239.         EndM
  5240.     ELSE
  5241.         IMPORT_CFM_FUNCTION DataHDoesBuffer
  5242.     ENDIF
  5243.  
  5244. ;
  5245. ; pascal ComponentResult DataHPlaybackHints(DataHandler dh, long flags, unsigned long minFileOffset, unsigned long maxFileOffset, long bytesPerSecond)
  5246. ;
  5247.     IF ¨ GENERATINGCFM THEN
  5248.         Macro
  5249.         _DataHPlaybackHints
  5250.             move.l              #$00100103,-(sp)
  5251.             moveq               #0,D0
  5252.             dc.w                $A82A
  5253.         EndM
  5254.     ELSE
  5255.         IMPORT_CFM_FUNCTION DataHPlaybackHints
  5256.     ENDIF
  5257.  
  5258.  
  5259. kDataHGetDataSelect                EQU        $02
  5260. kDataHPutDataSelect                EQU        $03
  5261. kDataHFlushDataSelect            EQU        $04
  5262. kDataHOpenForWriteSelect        EQU        $05
  5263. kDataHCloseForWriteSelect        EQU        $06
  5264. kDataHOpenForReadSelect            EQU        $08
  5265. kDataHCloseForReadSelect        EQU        $09
  5266. kDataHSetDataRefSelect            EQU        $0A
  5267. kDataHGetDataRefSelect            EQU        $0B
  5268. kDataHCompareDataRefSelect        EQU        $0C
  5269. kDataHTaskSelect                EQU        $0D
  5270. kDataHScheduleDataSelect        EQU        $0E
  5271. kDataHFinishDataSelect            EQU        $0F
  5272. kDataHFlushCacheSelect            EQU        $10
  5273. kDataHResolveDataRefSelect        EQU        $11
  5274. kDataHGetFileSizeSelect            EQU        $12
  5275. kDataHCanUseDataRefSelect        EQU        $13
  5276. kDataHGetVolumeListSelect        EQU        $14
  5277. kDataHWriteSelect                EQU        $15
  5278. kDataHPreextendSelect            EQU        $16
  5279. kDataHSetFileSizeSelect            EQU        $17
  5280. kDataHGetFreeSpaceSelect        EQU        $18
  5281. kDataHCreateFileSelect            EQU        $19
  5282. kDataHGetPreferredBlockSizeSelect EQU    $1A
  5283. kDataHGetDeviceIndexSelect        EQU        $1B
  5284. kDataHIsStreamingDataHandlerSelect EQU    $1C
  5285. kDataHGetDataInBufferSelect        EQU        $1D
  5286. kDataHGetScheduleAheadTimeSelect EQU    $1E
  5287. kDataHSetCacheSizeLimitSelect    EQU        $1F
  5288. kDataHGetCacheSizeLimitSelect    EQU        $20
  5289. kDataHGetMovieSelect            EQU        $21
  5290. kDataHAddMovieSelect            EQU        $22
  5291. kDataHUpdateMovieSelect            EQU        $23
  5292. kDataHDoesBufferSelect            EQU        $24
  5293. kDataHPlaybackHintsSelect        EQU        $0103
  5294.  
  5295. kMusicComponentType                EQU        'musi'
  5296. ; typedef ComponentInstance             MusicComponent
  5297.  
  5298. ;  MusicSynthesizerFlags
  5299.  
  5300. kSynthesizerDynamicVoice        EQU        1                    ; can reassign voices/channels (else, hogs all channels in mask 
  5301. kSynthesizerUsesMIDIPort        EQU        2                    ; must be patched through MIDI Manager 
  5302. kSynthesizerMicrotone            EQU        4                    ; can play microtonal scales 
  5303. kSynthesizerLimitedMicrotone    EQU        8                    ; can play microtones, but only on 1-voice parts 
  5304. kSynthesizerMixedDrums            EQU        16                    ; any part can play drum parts, total = instrument parts 
  5305. kSynthesizerSoftware            EQU        32                    ; implemented in main CPU software == uses cpu cycles 
  5306. kSynthesizerGMSuperset            EQU        8192
  5307. kSynthesizerGM                    EQU        16384                ; synth is a GM device 
  5308. ;
  5309. ; * Note that these controller numbers
  5310. ; * are _not_ identical to the MIDI controller numbers.
  5311. ; * These are _signed_ 8.8 values, and the LSB's are
  5312. ; * always sent to a MIDI device. Controllers 32-63 are
  5313. ; * reserved (for MIDI, they are LSB's for 0-31, but we
  5314. ; * always send both).
  5315. ; *
  5316. ; * The full range, therefore, is -128.00 to 127.7f.
  5317. ; *
  5318. ; * _Excepting_ _volume_, all controls default to zero.
  5319. ; *
  5320. ; * Pitch bend is specified in fractional semitones! No
  5321. ; * more "pitch bend range" nonsense. You can bend as far
  5322. ; * as you want, any time you want.
  5323. ;
  5324.  
  5325. kControllerModulationWheel        EQU        1
  5326. kControllerBreath                EQU        2
  5327. kControllerFoot                    EQU        4
  5328. kControllerPortamentoTime        EQU        5
  5329. kControllerVolume                EQU        7
  5330. kControllerBalance                EQU        8
  5331. kControllerPan                    EQU        10                    ; 0 - "default", 1 - n: positioned in output 1-n (incl fractions) 
  5332. kControllerExpression            EQU        11
  5333. kControllerPitchBend            EQU        32                    ; positive & negative semitones, with 7 bits fraction 
  5334. kControllerAfterTouch            EQU        33
  5335. kControllerSustain                EQU        64                    ; boolean - positive for on, 0 or negative off 
  5336. kControllerPortamento            EQU        65                    ; boolean 
  5337. kControllerSostenuto            EQU        66                    ; boolean 
  5338. kControllerSoftPedal            EQU        67                    ; boolean 
  5339. kControllerReverb                EQU        91
  5340. kControllerTremolo                EQU        92
  5341. kControllerChorus                EQU        93
  5342. kControllerCeleste                EQU        94
  5343. kControllerPhaser                EQU        95
  5344.  
  5345. kControllerMaximum                EQU        $7FFF                ; +01111111.11111111 
  5346. kControllerMinimum                EQU        $8000                ; -10000000.00000000 
  5347. SynthesizerDescription    RECORD 0
  5348. synthesizerType             ds.l    1                ; offset: $0 (0)        ;  synthesizer type (must be same as component subtype) 
  5349. name                     ds        Str31            ; offset: $4 (4)        ;  text name of synthesizer type 
  5350. flags                     ds.l    1                ; offset: $24 (36)        ;  from the above enum 
  5351. voiceCount                 ds.l    1                ; offset: $28 (40)        ;  maximum polyphony 
  5352. partCount                 ds.l    1                ; offset: $2C (44)        ;  maximum multi-timbrality (and midi channels) 
  5353. instrumentCount             ds.l    1                ; offset: $30 (48)        ;  non gm, built in (rom) instruments only 
  5354. modifiableInstrumentCount  ds.l    1                ; offset: $34 (52)        ;  plus n-more are user modifiable 
  5355. channelMask                 ds.l    1                ; offset: $38 (56)        ;  (midi device only) which channels device always uses 
  5356. drumPartCount             ds.l    1                ; offset: $3C (60)        ;  maximum multi-timbrality of drum parts 
  5357. drumCount                 ds.l    1                ; offset: $40 (64)        ;  non gm, built in (rom) drumkits only 
  5358. modifiableDrumCount         ds.l    1                ; offset: $44 (68)        ;  plus n-more are user modifiable 
  5359. drumChannelMask             ds.l    1                ; offset: $48 (72)        ;  (midi device only) which channels device always uses 
  5360. outputCount                 ds.l    1                ; offset: $4C (76)        ;  number of audio outputs (usually two) 
  5361. latency                     ds.l    1                ; offset: $50 (80)        ;  response time in µSec 
  5362. controllers                 ds.l    4                ; offset: $54 (84)        ;  array of 128 bits 
  5363. gmInstruments             ds.l    4                ; offset: $64 (100)        ;  array of 128 bits 
  5364. gmDrums                     ds.l    4                ; offset: $74 (116)        ;  array of 128 bits 
  5365. sizeof                     EQU *                    ; size:   $84 (132)
  5366.                         ENDR
  5367.  
  5368. kVoiceCountDynamic                EQU        -1                    ; constant to use to specify dynamic voicing 
  5369. ToneDescription            RECORD 0
  5370. synthesizerType             ds.l    1                ; offset: $0 (0)        ;  synthesizer type 
  5371. synthesizerName             ds        Str31            ; offset: $4 (4)        ;  name of instantiation of synth 
  5372. instrumentName             ds        Str31            ; offset: $24 (36)        ;  preferred name for human use 
  5373. instrumentNumber         ds.l    1                ; offset: $44 (68)        ;  inst-number used if synth-name matches 
  5374. gmNumber                 ds.l    1                ; offset: $48 (72)        ;  Best matching general MIDI number 
  5375. sizeof                     EQU *                    ; size:   $4C (76)
  5376.                         ENDR
  5377.  
  5378. kFirstDrumkit                    EQU        16384                ; (first value is "no drum". instrument numbers from 16384->16384+128 are drumkits, and for GM they are _defined_ drumkits! 
  5379. kLastDrumkit                    EQU        16512
  5380. ;  InstrumentMatch
  5381.  
  5382. kInstrumentMatchSynthesizerType    EQU        1
  5383. kInstrumentMatchSynthesizerName    EQU        2
  5384. kInstrumentMatchName            EQU        4
  5385. kInstrumentMatchNumber            EQU        8
  5386. kInstrumentMatchGMNumber        EQU        16
  5387. ;  KnobFlags
  5388.  
  5389. kKnobRealtime                    EQU        1                    ; Knob can be changed interactively as part of a sequence (ie knob can be changed at interrupt time) 
  5390. kKnobNextNote                    EQU        2                    ; Knob only takes effect on the next note played 
  5391. kKnobAction                        EQU        4                    ; setting the knob does something immediate 
  5392. kKnobNotInstrument                EQU        8                    ; indicates that the knob isn't in the instrument handle 
  5393. kKnobAffectsOthers                EQU        16                    ; other knobs will change value from this one 
  5394. kKnobMinorGroupStart            EQU        64                    ; knob is first in some logical subgroup of knobs 
  5395. kKnobGroupStart                    EQU        128                    ; knob is first in some logical group of knobs 
  5396.                                                             ; One of these may be used at a time. 
  5397. kKnobTypeNumber                    EQU        $00
  5398. kKnobTypeBoolean                EQU        $1000
  5399. kKnobTypeNote                    EQU        $2000
  5400. kKnobTypePan                    EQU        $3000
  5401. kKnobTypeInstrument                EQU        $4000                ; knob value = reference to another instrument number 
  5402. kKnobTypeSetting                EQU        $5000                ; knob value is 1 of n different things (eg, fm algorithms) 
  5403.  
  5404. kUnknownKnobValue                EQU        $7FFFFFFF            ; a knob with this value means, we don't know it. 
  5405. KnobDescription            RECORD 0
  5406. name                     ds        Str31            ; offset: $0 (0)
  5407. lowValue                 ds.l    1                ; offset: $20 (32)
  5408. highValue                 ds.l    1                ; offset: $24 (36)
  5409. defaultValue             ds.l    1                ; offset: $28 (40)        ;  a default instrument is made of all default values 
  5410. flags                     ds.l    1                ; offset: $2C (44)
  5411. sizeof                     EQU *                    ; size:   $30 (48)
  5412.                         ENDR
  5413. InstrumentData            RECORD 0
  5414. tone                     ds        ToneDescription ; offset: $0 (0)
  5415. knobCount                 ds.l    1                ; offset: $4C (76)
  5416. knob                     ds.l    1                ; offset: $50 (80) <-- really an array of length one
  5417. sizeof                     EQU *                    ; size:   $54 (84)
  5418.                         ENDR
  5419. ; typedef struct InstrumentData *        InstrumentDataPtr
  5420.  
  5421. ; typedef InstrumentDataPtr *            InstrumentDataHandle
  5422.  
  5423. FlatInstrument            RECORD 0
  5424. tone                     ds        ToneDescription ; offset: $0 (0)
  5425. size                     ds.l    1                ; offset: $4C (76)        ;  size in bytes of the following data, including size field (excluding tonedescription) 
  5426. data                     ds.b    4                ; offset: $50 (80)
  5427. sizeof                     EQU *                    ; size:   $54 (84)
  5428.                         ENDR
  5429. InstrumentAboutInfo        RECORD 0
  5430. p                         ds.l    1                ; offset: $0 (0)
  5431. author                     ds        Str255            ; offset: $4 (4)
  5432. copyright                 ds        Str255            ; offset: $104 (260)
  5433. other                     ds        Str255            ; offset: $204 (516)
  5434. sizeof                     EQU *                    ; size:   $304 (772)
  5435.                         ENDR
  5436. MusicMIDIPacket            RECORD 0
  5437. length                     ds.w    1                ; offset: $0 (0)
  5438. reserved                 ds.l    1                ; offset: $2 (2)
  5439. data                     ds.b    249                ; offset: $6 (6)
  5440.                          ORG 256
  5441. sizeof                     EQU *                    ; size:   $100 (256)
  5442.                         ENDR
  5443. ; --------------------------------
  5444.  
  5445. kMusicFirstSelect                EQU        0
  5446. kMusicGetDescriptionSelect        EQU        1
  5447. kMusicGetPartSelect                EQU        2
  5448. kMusicSetPartSelect                EQU        3
  5449. kMusicSetInstrumentNumberSelect    EQU        4
  5450. kMusicGetInstrumentNumberSelect    EQU        5
  5451. kMusicStoreInstrumentSelect        EQU        6
  5452. kMusicGetInstrumentSelect        EQU        7
  5453. kMusicSetInstrumentSelect        EQU        8
  5454. kMusicDummyOne                    EQU        9
  5455. kMusicDummyTwo                    EQU        10
  5456. kMusicDummyThree                EQU        11
  5457. kMusicDummyFour                    EQU        12
  5458. kMusicGetInstrumentKnobDescriptionSelect EQU 13
  5459. kMusicGetDrumKnobDescriptionSelect EQU    14
  5460. kMusicGetKnobDescriptionSelect    EQU        15
  5461. kMusicGetPartKnobSelect            EQU        16
  5462. kMusicSetPartKnobSelect            EQU        17
  5463. kMusicGetKnobSelect                EQU        18
  5464. kMusicSetKnobSelect                EQU        19
  5465. kMusicGetPartNameSelect            EQU        20
  5466. kMusicSetPartNameSelect            EQU        21
  5467. kMusicFindToneSelect            EQU        22
  5468. kMusicPlayNoteSelect            EQU        23
  5469. kMusicResetPartSelect            EQU        24
  5470. kMusicSetControllerSelect        EQU        25
  5471. kMusicGetControllerSelect        EQU        26
  5472. kMusicGetMIDIProcSelect            EQU        27
  5473. kMusicSetMIDIProcSelect            EQU        28
  5474. kMusicGetInstrumentNamesSelect    EQU        29
  5475. kMusicGetDrumNamesSelect        EQU        30
  5476. kMusicGetMasterTuneSelect        EQU        31
  5477. kMusicSetMasterTuneSelect        EQU        32
  5478. kMusicSetFlatInstrumentSelect    EQU        33
  5479. kMusicGetInstrumentAboutInfoSelect EQU    34
  5480.  
  5481. notImplementedMusicErr            EQU        $8000F7CB
  5482. cantSendToSynthesizerErr        EQU        $8000F7CA
  5483. cantReceiveFromSynthesizerErr    EQU        $8000F7C9
  5484. illegalVoiceAllocationErr        EQU        $8000F7C8
  5485. illegalPartErr                    EQU        $8000F7C7
  5486. illegalChannelErr                EQU        $8000F7C6
  5487. illegalKnobErr                    EQU        $8000F7C5
  5488. illegalKnobValueErr                EQU        $8000F7C4
  5489. illegalInstrumentErr            EQU        $8000F7C3
  5490. illegalControllerErr            EQU        $8000F7C2
  5491. midiManagerAbsentErr            EQU        $8000F7C1
  5492. synthesizerNotRespondingErr        EQU        $8000F7C0
  5493. synthesizerErr                    EQU        $8000F7BF
  5494. illegalNoteChannelErr            EQU        $8000F7BE
  5495. noteChannelNotAllocatedErr        EQU        $8000F7BD
  5496. tunePlayerFullErr                EQU        $8000F7BC
  5497. tuneParseErr                    EQU        $8000F7BB
  5498.  
  5499. kGMType                            EQU        'gm  '                ; subtype for General MIDI music component 
  5500. ;
  5501. ;-----------------------------------------
  5502. ;    Capabilities and Voice Allocation
  5503. ;-----------------------------------------
  5504. ;
  5505. ;
  5506. ; pascal ComponentResult MusicGetPart(MusicComponent mc, long part, long *midiChannel, long *polyphony)
  5507. ;
  5508.     IF ¨ GENERATINGCFM THEN
  5509.         Macro
  5510.         _MusicGetPart
  5511.             move.l              #$000C0002,-(sp)
  5512.             moveq               #0,D0
  5513.             dc.w                $A82A
  5514.         EndM
  5515.     ELSE
  5516.         IMPORT_CFM_FUNCTION MusicGetPart
  5517.     ENDIF
  5518.  
  5519. ;
  5520. ; pascal ComponentResult MusicSetPart(MusicComponent mc, long part, long midiChannel, long polyphony)
  5521. ;
  5522.     IF ¨ GENERATINGCFM THEN
  5523.         Macro
  5524.         _MusicSetPart
  5525.             move.l              #$000C0003,-(sp)
  5526.             moveq               #0,D0
  5527.             dc.w                $A82A
  5528.         EndM
  5529.     ELSE
  5530.         IMPORT_CFM_FUNCTION MusicSetPart
  5531.     ENDIF
  5532.  
  5533. ;
  5534. ; pascal ComponentResult MusicGetDescription(MusicComponent mc, SynthesizerDescription *sd)
  5535. ;
  5536.     IF ¨ GENERATINGCFM THEN
  5537.         Macro
  5538.         _MusicGetDescription
  5539.             move.l              #$00040001,-(sp)
  5540.             moveq               #0,D0
  5541.             dc.w                $A82A
  5542.         EndM
  5543.     ELSE
  5544.         IMPORT_CFM_FUNCTION MusicGetDescription
  5545.     ENDIF
  5546.  
  5547. ;
  5548. ; pascal ComponentResult MusicGetInstrumentAboutInfo(MusicComponent mc, long part, InstrumentAboutInfo *iai)
  5549. ;
  5550.     IF ¨ GENERATINGCFM THEN
  5551.         Macro
  5552.         _MusicGetInstrumentAboutInfo
  5553.             move.l              #$00080022,-(sp)
  5554.             moveq               #0,D0
  5555.             dc.w                $A82A
  5556.         EndM
  5557.     ELSE
  5558.         IMPORT_CFM_FUNCTION MusicGetInstrumentAboutInfo
  5559.     ENDIF
  5560.  
  5561. ;
  5562. ;-----------------------------------------
  5563. ;    Instrument Loading and Storing
  5564. ;-----------------------------------------
  5565. ;
  5566. ;
  5567. ; pascal ComponentResult MusicSetInstrumentNumber(MusicComponent mc, long part, long instrumentNumber)
  5568. ;
  5569.     IF ¨ GENERATINGCFM THEN
  5570.         Macro
  5571.         _MusicSetInstrumentNumber
  5572.             move.l              #$00080004,-(sp)
  5573.             moveq               #0,D0
  5574.             dc.w                $A82A
  5575.         EndM
  5576.     ELSE
  5577.         IMPORT_CFM_FUNCTION MusicSetInstrumentNumber
  5578.     ENDIF
  5579.  
  5580. ;
  5581. ; pascal ComponentResult MusicGetInstrumentNumber(MusicComponent mc, long part)
  5582. ;
  5583.     IF ¨ GENERATINGCFM THEN
  5584.         Macro
  5585.         _MusicGetInstrumentNumber
  5586.             move.l              #$00040005,-(sp)
  5587.             moveq               #0,D0
  5588.             dc.w                $A82A
  5589.         EndM
  5590.     ELSE
  5591.         IMPORT_CFM_FUNCTION MusicGetInstrumentNumber
  5592.     ENDIF
  5593.  
  5594. ;
  5595. ; pascal ComponentResult MusicStoreInstrument(MusicComponent mc, long part, long instrumentNumber)
  5596. ;
  5597.     IF ¨ GENERATINGCFM THEN
  5598.         Macro
  5599.         _MusicStoreInstrument
  5600.             move.l              #$00080006,-(sp)
  5601.             moveq               #0,D0
  5602.             dc.w                $A82A
  5603.         EndM
  5604.     ELSE
  5605.         IMPORT_CFM_FUNCTION MusicStoreInstrument
  5606.     ENDIF
  5607.  
  5608. ;
  5609. ; pascal ComponentResult MusicGetInstrument(MusicComponent mc, long part, InstrumentDataHandle *iH)
  5610. ;
  5611.     IF ¨ GENERATINGCFM THEN
  5612.         Macro
  5613.         _MusicGetInstrument
  5614.             move.l              #$00080007,-(sp)
  5615.             moveq               #0,D0
  5616.             dc.w                $A82A
  5617.         EndM
  5618.     ELSE
  5619.         IMPORT_CFM_FUNCTION MusicGetInstrument
  5620.     ENDIF
  5621.  
  5622. ;
  5623. ; pascal ComponentResult MusicSetInstrument(MusicComponent mc, long part, InstrumentDataHandle iH)
  5624. ;
  5625.     IF ¨ GENERATINGCFM THEN
  5626.         Macro
  5627.         _MusicSetInstrument
  5628.             move.l              #$00080008,-(sp)
  5629.             moveq               #0,D0
  5630.             dc.w                $A82A
  5631.         EndM
  5632.     ELSE
  5633.         IMPORT_CFM_FUNCTION MusicSetInstrument
  5634.     ENDIF
  5635.  
  5636. ;
  5637. ; pascal ComponentResult MusicSetFlatInstrument(MusicComponent mc, long part, FlatInstrument *flatInstrument)
  5638. ;
  5639.     IF ¨ GENERATINGCFM THEN
  5640.         Macro
  5641.         _MusicSetFlatInstrument
  5642.             move.l              #$00080021,-(sp)
  5643.             moveq               #0,D0
  5644.             dc.w                $A82A
  5645.         EndM
  5646.     ELSE
  5647.         IMPORT_CFM_FUNCTION MusicSetFlatInstrument
  5648.     ENDIF
  5649.  
  5650. ;
  5651. ;-----------------------------------------
  5652. ;    Instrument Knobs
  5653. ;-----------------------------------------
  5654. ;
  5655. ;
  5656. ; pascal ComponentResult MusicGetInstrumentKnobDescription(MusicComponent mc, long knobNumber, KnobDescription *mkd)
  5657. ;
  5658.     IF ¨ GENERATINGCFM THEN
  5659.         Macro
  5660.         _MusicGetInstrumentKnobDescription
  5661.             move.l              #$0008000D,-(sp)
  5662.             moveq               #0,D0
  5663.             dc.w                $A82A
  5664.         EndM
  5665.     ELSE
  5666.         IMPORT_CFM_FUNCTION MusicGetInstrumentKnobDescription
  5667.     ENDIF
  5668.  
  5669. ;
  5670. ; pascal ComponentResult MusicGetDrumKnobDescription(MusicComponent mc, long knobNumber, KnobDescription *mkd)
  5671. ;
  5672.     IF ¨ GENERATINGCFM THEN
  5673.         Macro
  5674.         _MusicGetDrumKnobDescription
  5675.             move.l              #$0008000E,-(sp)
  5676.             moveq               #0,D0
  5677.             dc.w                $A82A
  5678.         EndM
  5679.     ELSE
  5680.         IMPORT_CFM_FUNCTION MusicGetDrumKnobDescription
  5681.     ENDIF
  5682.  
  5683. ;
  5684. ; pascal ComponentResult MusicGetPartKnob(MusicComponent mc, long part, long knobNumber)
  5685. ;
  5686.     IF ¨ GENERATINGCFM THEN
  5687.         Macro
  5688.         _MusicGetPartKnob
  5689.             move.l              #$00080010,-(sp)
  5690.             moveq               #0,D0
  5691.             dc.w                $A82A
  5692.         EndM
  5693.     ELSE
  5694.         IMPORT_CFM_FUNCTION MusicGetPartKnob
  5695.     ENDIF
  5696.  
  5697. ;
  5698. ; pascal ComponentResult MusicSetPartKnob(MusicComponent mc, long part, long knobNumber, long knobValue)
  5699. ;
  5700.     IF ¨ GENERATINGCFM THEN
  5701.         Macro
  5702.         _MusicSetPartKnob
  5703.             move.l              #$000C0011,-(sp)
  5704.             moveq               #0,D0
  5705.             dc.w                $A82A
  5706.         EndM
  5707.     ELSE
  5708.         IMPORT_CFM_FUNCTION MusicSetPartKnob
  5709.     ENDIF
  5710.  
  5711. ;
  5712. ;-----------------------------------------
  5713. ;    Synthesizer Knobs
  5714. ;-----------------------------------------
  5715. ;
  5716. ;
  5717. ; pascal ComponentResult MusicGetKnobDescription(MusicComponent mc, long knobNumber, KnobDescription *mkd)
  5718. ;
  5719.     IF ¨ GENERATINGCFM THEN
  5720.         Macro
  5721.         _MusicGetKnobDescription
  5722.             move.l              #$0008000F,-(sp)
  5723.             moveq               #0,D0
  5724.             dc.w                $A82A
  5725.         EndM
  5726.     ELSE
  5727.         IMPORT_CFM_FUNCTION MusicGetKnobDescription
  5728.     ENDIF
  5729.  
  5730. ;
  5731. ; pascal ComponentResult MusicGetKnob(MusicComponent mc, long knobNumber)
  5732. ;
  5733.     IF ¨ GENERATINGCFM THEN
  5734.         Macro
  5735.         _MusicGetKnob
  5736.             move.l              #$00040012,-(sp)
  5737.             moveq               #0,D0
  5738.             dc.w                $A82A
  5739.         EndM
  5740.     ELSE
  5741.         IMPORT_CFM_FUNCTION MusicGetKnob
  5742.     ENDIF
  5743.  
  5744. ;
  5745. ; pascal ComponentResult MusicSetKnob(MusicComponent mc, long knobNumber, long knobValue)
  5746. ;
  5747.     IF ¨ GENERATINGCFM THEN
  5748.         Macro
  5749.         _MusicSetKnob
  5750.             move.l              #$00080013,-(sp)
  5751.             moveq               #0,D0
  5752.             dc.w                $A82A
  5753.         EndM
  5754.     ELSE
  5755.         IMPORT_CFM_FUNCTION MusicSetKnob
  5756.     ENDIF
  5757.  
  5758. ;
  5759. ; pascal ComponentResult MusicSetMasterTune(MusicComponent mc, Fixed masterTune)
  5760. ;
  5761.     IF ¨ GENERATINGCFM THEN
  5762.         Macro
  5763.         _MusicSetMasterTune
  5764.             move.l              #$00040020,-(sp)
  5765.             moveq               #0,D0
  5766.             dc.w                $A82A
  5767.         EndM
  5768.     ELSE
  5769.         IMPORT_CFM_FUNCTION MusicSetMasterTune
  5770.     ENDIF
  5771.  
  5772. ;
  5773. ; pascal ComponentResult MusicGetMasterTune(MusicComponent mc)
  5774. ;
  5775.     IF ¨ GENERATINGCFM THEN
  5776.         Macro
  5777.         _MusicGetMasterTune
  5778.             move.l              #$0000001F,-(sp)
  5779.             moveq               #0,D0
  5780.             dc.w                $A82A
  5781.         EndM
  5782.     ELSE
  5783.         IMPORT_CFM_FUNCTION MusicGetMasterTune
  5784.     ENDIF
  5785.  
  5786. ;
  5787. ;-----------------------------------------
  5788. ;    Names of Instruments
  5789. ;-----------------------------------------
  5790. ;
  5791. ;
  5792. ; pascal ComponentResult MusicGetPartName(MusicComponent mc, long part, Str31 name)
  5793. ;
  5794.     IF ¨ GENERATINGCFM THEN
  5795.         Macro
  5796.         _MusicGetPartName
  5797.             move.l              #$00080014,-(sp)
  5798.             moveq               #0,D0
  5799.             dc.w                $A82A
  5800.         EndM
  5801.     ELSE
  5802.         IMPORT_CFM_FUNCTION MusicGetPartName
  5803.     ENDIF
  5804.  
  5805. ;
  5806. ; pascal ComponentResult MusicSetPartName(MusicComponent mc, long part, Str31 name)
  5807. ;
  5808.     IF ¨ GENERATINGCFM THEN
  5809.         Macro
  5810.         _MusicSetPartName
  5811.             move.l              #$00080015,-(sp)
  5812.             moveq               #0,D0
  5813.             dc.w                $A82A
  5814.         EndM
  5815.     ELSE
  5816.         IMPORT_CFM_FUNCTION MusicSetPartName
  5817.     ENDIF
  5818.  
  5819. ;
  5820. ; pascal ComponentResult MusicFindTone(MusicComponent mc, ToneDescription *td, long *instrumentNumber, unsigned long *fit)
  5821. ;
  5822.     IF ¨ GENERATINGCFM THEN
  5823.         Macro
  5824.         _MusicFindTone
  5825.             move.l              #$000C0016,-(sp)
  5826.             moveq               #0,D0
  5827.             dc.w                $A82A
  5828.         EndM
  5829.     ELSE
  5830.         IMPORT_CFM_FUNCTION MusicFindTone
  5831.     ENDIF
  5832.  
  5833. ;
  5834. ; pascal ComponentResult MusicGetInstrumentNames(MusicComponent mc, long modifiableInstruments, Handle *instrumentNames, Handle *instrumentCategoryLasts, Handle *instrumentCategoryNames)
  5835. ;
  5836.     IF ¨ GENERATINGCFM THEN
  5837.         Macro
  5838.         _MusicGetInstrumentNames
  5839.             move.l              #$0010001D,-(sp)
  5840.             moveq               #0,D0
  5841.             dc.w                $A82A
  5842.         EndM
  5843.     ELSE
  5844.         IMPORT_CFM_FUNCTION MusicGetInstrumentNames
  5845.     ENDIF
  5846.  
  5847. ;
  5848. ; pascal ComponentResult MusicGetDrumNames(MusicComponent mc, long modifiableInstruments, Handle *instrumentNumbers, Handle *instrumentNames)
  5849. ;
  5850.     IF ¨ GENERATINGCFM THEN
  5851.         Macro
  5852.         _MusicGetDrumNames
  5853.             move.l              #$000C001E,-(sp)
  5854.             moveq               #0,D0
  5855.             dc.w                $A82A
  5856.         EndM
  5857.     ELSE
  5858.         IMPORT_CFM_FUNCTION MusicGetDrumNames
  5859.     ENDIF
  5860.  
  5861. ;
  5862. ;-----------------------------------------
  5863. ;    Realtime Actions
  5864. ;-----------------------------------------
  5865. ;
  5866. ;
  5867. ; pascal ComponentResult MusicPlayNote(MusicComponent mc, long part, long pitch, long velocity)
  5868. ;
  5869.     IF ¨ GENERATINGCFM THEN
  5870.         Macro
  5871.         _MusicPlayNote
  5872.             move.l              #$000C0017,-(sp)
  5873.             moveq               #0,D0
  5874.             dc.w                $A82A
  5875.         EndM
  5876.     ELSE
  5877.         IMPORT_CFM_FUNCTION MusicPlayNote
  5878.     ENDIF
  5879.  
  5880. ;
  5881. ; pascal ComponentResult MusicResetPart(MusicComponent mc, long part)
  5882. ;
  5883.     IF ¨ GENERATINGCFM THEN
  5884.         Macro
  5885.         _MusicResetPart
  5886.             move.l              #$00040018,-(sp)
  5887.             moveq               #0,D0
  5888.             dc.w                $A82A
  5889.         EndM
  5890.     ELSE
  5891.         IMPORT_CFM_FUNCTION MusicResetPart
  5892.     ENDIF
  5893.  
  5894. ;
  5895. ; pascal ComponentResult MusicSetController(MusicComponent mc, long part, long controllerNumber, long controllerValue)
  5896. ;
  5897.     IF ¨ GENERATINGCFM THEN
  5898.         Macro
  5899.         _MusicSetController
  5900.             move.l              #$000C0019,-(sp)
  5901.             moveq               #0,D0
  5902.             dc.w                $A82A
  5903.         EndM
  5904.     ELSE
  5905.         IMPORT_CFM_FUNCTION MusicSetController
  5906.     ENDIF
  5907.  
  5908. ;
  5909. ; pascal ComponentResult MusicGetController(MusicComponent mc, long part, long controllerNumber)
  5910. ;
  5911.     IF ¨ GENERATINGCFM THEN
  5912.         Macro
  5913.         _MusicGetController
  5914.             move.l              #$0008001A,-(sp)
  5915.             moveq               #0,D0
  5916.             dc.w                $A82A
  5917.         EndM
  5918.     ELSE
  5919.         IMPORT_CFM_FUNCTION MusicGetController
  5920.     ENDIF
  5921.  
  5922. ;
  5923. ;-----------------------------------------
  5924. ;    Finding the Hardware
  5925. ;-----------------------------------------
  5926. ;
  5927. ;
  5928. ; pascal ComponentResult MusicGetMIDIProc(MusicComponent mc, MusicMIDISendUPP *midiSendProc, long *refCon)
  5929. ;
  5930.     IF ¨ GENERATINGCFM THEN
  5931.         Macro
  5932.         _MusicGetMIDIProc
  5933.             move.l              #$0008001B,-(sp)
  5934.             moveq               #0,D0
  5935.             dc.w                $A82A
  5936.         EndM
  5937.     ELSE
  5938.         IMPORT_CFM_FUNCTION MusicGetMIDIProc
  5939.     ENDIF
  5940.  
  5941. ;
  5942. ; pascal ComponentResult MusicSetMIDIProc(MusicComponent mc, MusicMIDISendUPP midiSendProc, long refCon)
  5943. ;
  5944.     IF ¨ GENERATINGCFM THEN
  5945.         Macro
  5946.         _MusicSetMIDIProc
  5947.             move.l              #$0008001C,-(sp)
  5948.             moveq               #0,D0
  5949.             dc.w                $A82A
  5950.         EndM
  5951.     ELSE
  5952.         IMPORT_CFM_FUNCTION MusicSetMIDIProc
  5953.     ENDIF
  5954.  
  5955. ;
  5956. ;--------------------------
  5957. ;    Types
  5958. ;--------------------------
  5959. ;
  5960. ; typedef void *                        NoteChannel
  5961.  
  5962. ;  used for MIDI device only 
  5963. SynthesizerConnections    RECORD 0
  5964. clientID                 ds.l    1                ; offset: $0 (0)
  5965. inputPortID                 ds.l    1                ; offset: $4 (4)
  5966. outputPortID             ds.l    1                ; offset: $8 (8)
  5967. midiChannel                 ds.l    1                ; offset: $C (12)        ;  The system channel; others are configurable (or the nubus slot number) 
  5968. flags                     ds.l    1                ; offset: $10 (16)
  5969. reserved                 ds.l    3                ; offset: $14 (20)        ;  should be zero 
  5970. sizeof                     EQU *                    ; size:   $20 (32)
  5971.                         ENDR
  5972. NoteRequest                RECORD 0
  5973. polyphony                 ds.l    1                ; offset: $0 (0)        ;  Maximum number of voices 
  5974. typicalPolyphony         ds.l    1                ; offset: $4 (4)        ;  Hint for level mixing 
  5975. tone                     ds        ToneDescription ; offset: $8 (8)
  5976. sizeof                     EQU *                    ; size:   $54 (84)
  5977.                         ENDR
  5978.  
  5979. kNAFirstSelector                EQU        -7
  5980. kNATargetSelect                    EQU        -6
  5981. kNARegisterSelect                EQU        -5
  5982. kNAVersionSelect                EQU        -4
  5983. kNACanDoSelect                    EQU        -3
  5984. kNACloseSelect                    EQU        -2
  5985. kNAOpenSelect                    EQU        -1
  5986. kNARegisterMusicDeviceSelect    EQU        0
  5987. kNAUnregisterMusicDeviceSelect    EQU        1
  5988. kNAGetRegisteredMusicDeviceSelect EQU    2
  5989. kNASaveMusicConfigurationSelect    EQU        3
  5990. kNANewNoteChannelSelect            EQU        4
  5991. kNADisposeNoteChannelSelect        EQU        5
  5992. kNAGetNoteChannelInfoSelect        EQU        6
  5993. kNAPrerollNoteChannelSelect        EQU        7
  5994. kNAUnrollNoteChannelSelect        EQU        8
  5995. kNAEngageNoteChannelSelect        EQU        9
  5996. kNADisengageNoteChannelSelect    EQU        10
  5997. kNASetNoteChannelVolumeSelect    EQU        11
  5998. kNAResetNoteChannelSelect        EQU        12
  5999. kNAPlayNoteSelect                EQU        13
  6000. kNASetControllerSelect            EQU        14
  6001. kNASetKnobSelect                EQU        15
  6002. kNAFindNoteChannelToneSelect    EQU        16
  6003. kNASetNoteChannelInstrumentSelect EQU    17
  6004. kNAPickInstrumentSelect            EQU        18
  6005. kNAPickArrangementSelect        EQU        19
  6006. kNAGetStatusBlockSelect            EQU        20
  6007. kNASetDefaultMIDIInputSelect    EQU        21
  6008. kNAGetDefaultMIDIInputSelect    EQU        22
  6009. kNAGetNoteChannelStateSelect    EQU        23
  6010. kNASetNoteChannelStateSelect    EQU        24
  6011. kNAUseDefaultMIDIInputSelect    EQU        25
  6012. kNALoseDefaultMIDIInputSelect    EQU        26
  6013. kNAStuffToneDescriptionSelect    EQU        27
  6014. kNACopyrightDialogSelect        EQU        28
  6015. kNASetFlatInstrumentSelect        EQU        29
  6016. kNASetInstrumentSelect            EQU        30
  6017. kNALastSelector                    EQU        31
  6018. ; typedef ComponentInstance             NoteAllocator
  6019.  
  6020.  
  6021. kPickDontMix                    EQU        1                    ; dont mix instruments with drum sounds 
  6022. kPickSameSynth                    EQU        2                    ; only allow the same device that went in, to come out 
  6023.  
  6024. kNoteAllocatorType                EQU        'nota'
  6025. ;
  6026. ;--------------------------------
  6027. ;    Note Allocator Prototypes
  6028. ;--------------------------------
  6029. ;
  6030. ;
  6031. ; * System Configuration
  6032. ;
  6033. ;
  6034. ; pascal ComponentResult NARegisterMusicDevice(NoteAllocator na, OSType synthType, Str31 name, SynthesizerConnections *connections)
  6035. ;
  6036.     IF ¨ GENERATINGCFM THEN
  6037.         Macro
  6038.         _NARegisterMusicDevice
  6039.             move.l              #$000C0000,-(sp)
  6040.             moveq               #0,D0
  6041.             dc.w                $A82A
  6042.         EndM
  6043.     ELSE
  6044.         IMPORT_CFM_FUNCTION NARegisterMusicDevice
  6045.     ENDIF
  6046.  
  6047. ;
  6048. ; pascal ComponentResult NAUnregisterMusicDevice(NoteAllocator na, long index)
  6049. ;
  6050.     IF ¨ GENERATINGCFM THEN
  6051.         Macro
  6052.         _NAUnregisterMusicDevice
  6053.             move.l              #$00040001,-(sp)
  6054.             moveq               #0,D0
  6055.             dc.w                $A82A
  6056.         EndM
  6057.     ELSE
  6058.         IMPORT_CFM_FUNCTION NAUnregisterMusicDevice
  6059.     ENDIF
  6060.  
  6061. ;
  6062. ; pascal ComponentResult NAGetRegisteredMusicDevice(NoteAllocator na, long index, OSType *synthType, Str31 name, SynthesizerConnections *connections, MusicComponent *mc)
  6063. ;
  6064.     IF ¨ GENERATINGCFM THEN
  6065.         Macro
  6066.         _NAGetRegisteredMusicDevice
  6067.             move.l              #$00140002,-(sp)
  6068.             moveq               #0,D0
  6069.             dc.w                $A82A
  6070.         EndM
  6071.     ELSE
  6072.         IMPORT_CFM_FUNCTION NAGetRegisteredMusicDevice
  6073.     ENDIF
  6074.  
  6075. ;
  6076. ; pascal ComponentResult NASetDefaultMIDIInput(NoteAllocator na, SynthesizerConnections *sc)
  6077. ;
  6078.     IF ¨ GENERATINGCFM THEN
  6079.         Macro
  6080.         _NASetDefaultMIDIInput
  6081.             move.l              #$00040015,-(sp)
  6082.             moveq               #0,D0
  6083.             dc.w                $A82A
  6084.         EndM
  6085.     ELSE
  6086.         IMPORT_CFM_FUNCTION NASetDefaultMIDIInput
  6087.     ENDIF
  6088.  
  6089. ;
  6090. ; pascal ComponentResult NAGetDefaultMIDIInput(NoteAllocator na, SynthesizerConnections *sc)
  6091. ;
  6092.     IF ¨ GENERATINGCFM THEN
  6093.         Macro
  6094.         _NAGetDefaultMIDIInput
  6095.             move.l              #$00040016,-(sp)
  6096.             moveq               #0,D0
  6097.             dc.w                $A82A
  6098.         EndM
  6099.     ELSE
  6100.         IMPORT_CFM_FUNCTION NAGetDefaultMIDIInput
  6101.     ENDIF
  6102.  
  6103. ;
  6104. ; pascal ComponentResult NASaveMusicConfiguration(NoteAllocator na)
  6105. ;
  6106.     IF ¨ GENERATINGCFM THEN
  6107.         Macro
  6108.         _NASaveMusicConfiguration
  6109.             move.l              #$00000003,-(sp)
  6110.             moveq               #0,D0
  6111.             dc.w                $A82A
  6112.         EndM
  6113.     ELSE
  6114.         IMPORT_CFM_FUNCTION NASaveMusicConfiguration
  6115.     ENDIF
  6116.  
  6117. ;
  6118. ; * Allocation
  6119. ;
  6120. ;
  6121. ; pascal ComponentResult NANewNoteChannel(NoteAllocator na, NoteRequest *noteRequest, NoteChannel *outChannel)
  6122. ;
  6123.     IF ¨ GENERATINGCFM THEN
  6124.         Macro
  6125.         _NANewNoteChannel
  6126.             move.l              #$00080004,-(sp)
  6127.             moveq               #0,D0
  6128.             dc.w                $A82A
  6129.         EndM
  6130.     ELSE
  6131.         IMPORT_CFM_FUNCTION NANewNoteChannel
  6132.     ENDIF
  6133.  
  6134. ;
  6135. ; pascal ComponentResult NADisposeNoteChannel(NoteAllocator na, NoteChannel noteChannel)
  6136. ;
  6137.     IF ¨ GENERATINGCFM THEN
  6138.         Macro
  6139.         _NADisposeNoteChannel
  6140.             move.l              #$00040005,-(sp)
  6141.             moveq               #0,D0
  6142.             dc.w                $A82A
  6143.         EndM
  6144.     ELSE
  6145.         IMPORT_CFM_FUNCTION NADisposeNoteChannel
  6146.     ENDIF
  6147.  
  6148. ;
  6149. ; pascal ComponentResult NAGetNoteChannelInfo(NoteAllocator na, NoteChannel noteChannel, long *index, long *part)
  6150. ;
  6151.     IF ¨ GENERATINGCFM THEN
  6152.         Macro
  6153.         _NAGetNoteChannelInfo
  6154.             move.l              #$000C0006,-(sp)
  6155.             moveq               #0,D0
  6156.             dc.w                $A82A
  6157.         EndM
  6158.     ELSE
  6159.         IMPORT_CFM_FUNCTION NAGetNoteChannelInfo
  6160.     ENDIF
  6161.  
  6162. ;
  6163. ; pascal ComponentResult NAUseDefaultMIDIInput(NoteAllocator na, MusicMIDIReadHookUPP readHook, long refCon, unsigned long flags)
  6164. ;
  6165.     IF ¨ GENERATINGCFM THEN
  6166.         Macro
  6167.         _NAUseDefaultMIDIInput
  6168.             move.l              #$000C0019,-(sp)
  6169.             moveq               #0,D0
  6170.             dc.w                $A82A
  6171.         EndM
  6172.     ELSE
  6173.         IMPORT_CFM_FUNCTION NAUseDefaultMIDIInput
  6174.     ENDIF
  6175.  
  6176. ;
  6177. ; pascal ComponentResult NALoseDefaultMIDIInput(NoteAllocator na)
  6178. ;
  6179.     IF ¨ GENERATINGCFM THEN
  6180.         Macro
  6181.         _NALoseDefaultMIDIInput
  6182.             move.l              #$0000001A,-(sp)
  6183.             moveq               #0,D0
  6184.             dc.w                $A82A
  6185.         EndM
  6186.     ELSE
  6187.         IMPORT_CFM_FUNCTION NALoseDefaultMIDIInput
  6188.     ENDIF
  6189.  
  6190. ;
  6191. ; * Setup
  6192. ;
  6193. ;
  6194. ; pascal ComponentResult NAPrerollNoteChannel(NoteAllocator na, NoteChannel noteChannel)
  6195. ;
  6196.     IF ¨ GENERATINGCFM THEN
  6197.         Macro
  6198.         _NAPrerollNoteChannel
  6199.             move.l              #$00040007,-(sp)
  6200.             moveq               #0,D0
  6201.             dc.w                $A82A
  6202.         EndM
  6203.     ELSE
  6204.         IMPORT_CFM_FUNCTION NAPrerollNoteChannel
  6205.     ENDIF
  6206.  
  6207. ;
  6208. ; pascal ComponentResult NAUnrollNoteChannel(NoteAllocator na, NoteChannel noteChannel)
  6209. ;
  6210.     IF ¨ GENERATINGCFM THEN
  6211.         Macro
  6212.         _NAUnrollNoteChannel
  6213.             move.l              #$00040008,-(sp)
  6214.             moveq               #0,D0
  6215.             dc.w                $A82A
  6216.         EndM
  6217.     ELSE
  6218.         IMPORT_CFM_FUNCTION NAUnrollNoteChannel
  6219.     ENDIF
  6220.  
  6221. ;
  6222. ; pascal ComponentResult NAEngageNoteChannel(NoteAllocator na, NoteChannel noteChannel)
  6223. ;
  6224.     IF ¨ GENERATINGCFM THEN
  6225.         Macro
  6226.         _NAEngageNoteChannel
  6227.             move.l              #$00040009,-(sp)
  6228.             moveq               #0,D0
  6229.             dc.w                $A82A
  6230.         EndM
  6231.     ELSE
  6232.         IMPORT_CFM_FUNCTION NAEngageNoteChannel
  6233.     ENDIF
  6234.  
  6235. ;
  6236. ; pascal ComponentResult NADisengageNoteChannel(NoteAllocator na, NoteChannel noteChannel, long silenceNotes)
  6237. ;
  6238.     IF ¨ GENERATINGCFM THEN
  6239.         Macro
  6240.         _NADisengageNoteChannel
  6241.             move.l              #$0008000A,-(sp)
  6242.             moveq               #0,D0
  6243.             dc.w                $A82A
  6244.         EndM
  6245.     ELSE
  6246.         IMPORT_CFM_FUNCTION NADisengageNoteChannel
  6247.     ENDIF
  6248.  
  6249. ;
  6250. ; pascal ComponentResult NAGetNoteChannelState(NoteAllocator na, NoteChannel noteChannel, long instrumentNumber, Handle *state)
  6251. ;
  6252.     IF ¨ GENERATINGCFM THEN
  6253.         Macro
  6254.         _NAGetNoteChannelState
  6255.             move.l              #$000C0017,-(sp)
  6256.             moveq               #0,D0
  6257.             dc.w                $A82A
  6258.         EndM
  6259.     ELSE
  6260.         IMPORT_CFM_FUNCTION NAGetNoteChannelState
  6261.     ENDIF
  6262.  
  6263. ;
  6264. ; pascal ComponentResult NASetNoteChannelState(NoteAllocator na, NoteChannel noteChannel, long instrumentNumber, Handle state)
  6265. ;
  6266.     IF ¨ GENERATINGCFM THEN
  6267.         Macro
  6268.         _NASetNoteChannelState
  6269.             move.l              #$000C0018,-(sp)
  6270.             moveq               #0,D0
  6271.             dc.w                $A82A
  6272.         EndM
  6273.     ELSE
  6274.         IMPORT_CFM_FUNCTION NASetNoteChannelState
  6275.     ENDIF
  6276.  
  6277. ;
  6278. ; pascal ComponentResult NAResetNoteChannel(NoteAllocator na, NoteChannel noteChannel)
  6279. ;
  6280.     IF ¨ GENERATINGCFM THEN
  6281.         Macro
  6282.         _NAResetNoteChannel
  6283.             move.l              #$0004000C,-(sp)
  6284.             moveq               #0,D0
  6285.             dc.w                $A82A
  6286.         EndM
  6287.     ELSE
  6288.         IMPORT_CFM_FUNCTION NAResetNoteChannel
  6289.     ENDIF
  6290.  
  6291. ;
  6292. ; pascal ComponentResult NASetNoteChannelVolume(NoteAllocator na, NoteChannel noteChannel, Fixed volume)
  6293. ;
  6294.     IF ¨ GENERATINGCFM THEN
  6295.         Macro
  6296.         _NASetNoteChannelVolume
  6297.             move.l              #$0008000B,-(sp)
  6298.             moveq               #0,D0
  6299.             dc.w                $A82A
  6300.         EndM
  6301.     ELSE
  6302.         IMPORT_CFM_FUNCTION NASetNoteChannelVolume
  6303.     ENDIF
  6304.  
  6305. ;
  6306. ; pascal ComponentResult NASetInstrument(NoteAllocator na, NoteChannel noteChannel, InstrumentData *instrumentData)
  6307. ;
  6308.     IF ¨ GENERATINGCFM THEN
  6309.         Macro
  6310.         _NASetInstrument
  6311.             move.l              #$0008001E,-(sp)
  6312.             moveq               #0,D0
  6313.             dc.w                $A82A
  6314.         EndM
  6315.     ELSE
  6316.         IMPORT_CFM_FUNCTION NASetInstrument
  6317.     ENDIF
  6318.  
  6319. ;
  6320. ; pascal ComponentResult NASetFlatInstrument(NoteAllocator na, NoteChannel noteChannel, FlatInstrument *flatInstrument)
  6321. ;
  6322.     IF ¨ GENERATINGCFM THEN
  6323.         Macro
  6324.         _NASetFlatInstrument
  6325.             move.l              #$0008001D,-(sp)
  6326.             moveq               #0,D0
  6327.             dc.w                $A82A
  6328.         EndM
  6329.     ELSE
  6330.         IMPORT_CFM_FUNCTION NASetFlatInstrument
  6331.     ENDIF
  6332.  
  6333. ;
  6334. ; * Control
  6335. ;
  6336. ;
  6337. ; pascal ComponentResult NAPlayNote(NoteAllocator na, NoteChannel noteChannel, long pitch, long velocity)
  6338. ;
  6339.     IF ¨ GENERATINGCFM THEN
  6340.         Macro
  6341.         _NAPlayNote
  6342.             move.l              #$000C000D,-(sp)
  6343.             moveq               #0,D0
  6344.             dc.w                $A82A
  6345.         EndM
  6346.     ELSE
  6347.         IMPORT_CFM_FUNCTION NAPlayNote
  6348.     ENDIF
  6349.  
  6350. ;
  6351. ; pascal ComponentResult NASetController(NoteAllocator na, NoteChannel noteChannel, long controllerNumber, long controllerValue)
  6352. ;
  6353.     IF ¨ GENERATINGCFM THEN
  6354.         Macro
  6355.         _NASetController
  6356.             move.l              #$000C000E,-(sp)
  6357.             moveq               #0,D0
  6358.             dc.w                $A82A
  6359.         EndM
  6360.     ELSE
  6361.         IMPORT_CFM_FUNCTION NASetController
  6362.     ENDIF
  6363.  
  6364. ;
  6365. ; pascal ComponentResult NASetKnob(NoteAllocator na, NoteChannel noteChannel, long knobNumber, long knobValue)
  6366. ;
  6367.     IF ¨ GENERATINGCFM THEN
  6368.         Macro
  6369.         _NASetKnob
  6370.             move.l              #$000C000F,-(sp)
  6371.             moveq               #0,D0
  6372.             dc.w                $A82A
  6373.         EndM
  6374.     ELSE
  6375.         IMPORT_CFM_FUNCTION NASetKnob
  6376.     ENDIF
  6377.  
  6378. ;
  6379. ; pascal ComponentResult NAFindNoteChannelTone(NoteAllocator na, NoteChannel noteChannel, ToneDescription *td, long *instrumentNumber)
  6380. ;
  6381.     IF ¨ GENERATINGCFM THEN
  6382.         Macro
  6383.         _NAFindNoteChannelTone
  6384.             move.l              #$000C0010,-(sp)
  6385.             moveq               #0,D0
  6386.             dc.w                $A82A
  6387.         EndM
  6388.     ELSE
  6389.         IMPORT_CFM_FUNCTION NAFindNoteChannelTone
  6390.     ENDIF
  6391.  
  6392. ;
  6393. ; pascal ComponentResult NASetNoteChannelInstrument(NoteAllocator na, NoteChannel noteChannel, long instrumentNumber)
  6394. ;
  6395.     IF ¨ GENERATINGCFM THEN
  6396.         Macro
  6397.         _NASetNoteChannelInstrument
  6398.             move.l              #$00080011,-(sp)
  6399.             moveq               #0,D0
  6400.             dc.w                $A82A
  6401.         EndM
  6402.     ELSE
  6403.         IMPORT_CFM_FUNCTION NASetNoteChannelInstrument
  6404.     ENDIF
  6405.  
  6406.     ENDIF
  6407.     IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
  6408. ;
  6409. ; * User Interface
  6410. ;
  6411. ;
  6412. ; pascal ComponentResult NAPickInstrument(NoteAllocator na, ModalFilterUPP filterProc, StringPtr prompt, ToneDescription *sd, unsigned long flags, long refCon, Ptr *flatList, long *flatChoiceIndex)
  6413. ;
  6414.     IF ¨ GENERATINGCFM THEN
  6415.         Macro
  6416.         _NAPickInstrument
  6417.             move.l              #$001C0012,-(sp)
  6418.             moveq               #0,D0
  6419.             dc.w                $A82A
  6420.         EndM
  6421.     ELSE
  6422.         IMPORT_CFM_FUNCTION NAPickInstrument
  6423.     ENDIF
  6424.  
  6425. ;
  6426. ; pascal ComponentResult NAStuffToneDescription(NoteAllocator na, long gmNumber, ToneDescription *td)
  6427. ;
  6428.     IF ¨ GENERATINGCFM THEN
  6429.         Macro
  6430.         _NAStuffToneDescription
  6431.             move.l              #$0008001B,-(sp)
  6432.             moveq               #0,D0
  6433.             dc.w                $A82A
  6434.         EndM
  6435.     ELSE
  6436.         IMPORT_CFM_FUNCTION NAStuffToneDescription
  6437.     ENDIF
  6438.  
  6439. ;
  6440. ; pascal ComponentResult NAPickArrangement(NoteAllocator na, ModalFilterUPP filterProc, StringPtr prompt, long partCount, NoteRequest *noteRequestList, Track t, StringPtr songName)
  6441. ;
  6442.     IF ¨ GENERATINGCFM THEN
  6443.         Macro
  6444.         _NAPickArrangement
  6445.             move.l              #$00180013,-(sp)
  6446.             moveq               #0,D0
  6447.             dc.w                $A82A
  6448.         EndM
  6449.     ELSE
  6450.         IMPORT_CFM_FUNCTION NAPickArrangement
  6451.     ENDIF
  6452.  
  6453. ;
  6454. ; pascal ComponentResult NACopyrightDialog(NoteAllocator na, PicHandle p, StringPtr author, StringPtr copyright, StringPtr other, StringPtr title, ModalFilterUPP filterProc, long refCon)
  6455. ;
  6456.     IF ¨ GENERATINGCFM THEN
  6457.         Macro
  6458.         _NACopyrightDialog
  6459.             move.l              #$001C001C,-(sp)
  6460.             moveq               #0,D0
  6461.             dc.w                $A82A
  6462.         EndM
  6463.     ELSE
  6464.         IMPORT_CFM_FUNCTION NACopyrightDialog
  6465.     ENDIF
  6466.  
  6467.     ENDIF
  6468.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  6469. ;
  6470. ; * Note Allocator interior views
  6471. ;
  6472. NAStatPiece                RECORD 0
  6473. clientName                 ds        Str31            ; offset: $0 (0)
  6474. synthesizerName             ds        Str31            ; offset: $20 (32)
  6475. part                     ds.l    1                ; offset: $40 (64)
  6476. midiChannel                 ds.l    1                ; offset: $44 (68)
  6477. polyphony                 ds.l    1                ; offset: $48 (72)
  6478. valid                     ds.l    1                ; offset: $4C (76)
  6479. sizeof                     EQU *                    ; size:   $50 (80)
  6480.                         ENDR
  6481. NAStat                    RECORD 0
  6482. pieceCount                 ds.l    1                ; offset: $0 (0)
  6483. piece                     ds.b    64 * NAStatPiece.sizeof ; offset: $4 (4)
  6484. sizeof                     EQU *                    ; size:   $1404 (5124)
  6485.                         ENDR
  6486. ;
  6487. ; pascal ComponentResult NAGetStatusBlock(NoteAllocator na, NAStat *stat)
  6488. ;
  6489.     IF ¨ GENERATINGCFM THEN
  6490.         Macro
  6491.         _NAGetStatusBlock
  6492.             move.l              #$00040014,-(sp)
  6493.             moveq               #0,D0
  6494.             dc.w                $A82A
  6495.         EndM
  6496.     ELSE
  6497.         IMPORT_CFM_FUNCTION NAGetStatusBlock
  6498.     ENDIF
  6499.  
  6500. ;
  6501. ;--------------------------
  6502. ;    Types
  6503. ;--------------------------
  6504. ;
  6505.  
  6506. kTuneQueueDepth                    EQU        8                    ; Deepest you can queue tune segments 
  6507. TuneStatus                RECORD 0
  6508. tune                     ds.l    1                ; offset: $0 (0)        ;  currently playing tune 
  6509. tunePtr                     ds.l    1                ; offset: $4 (4)        ;  position within currently playing piece 
  6510. time                     ds.l    1                ; offset: $8 (8)        ;  current tune time 
  6511. queueCount                 ds.w    1                ; offset: $C (12)        ;  how many pieces queued up? 
  6512. queueSpots                 ds.w    1                ; offset: $E (14)        ;  How many more tunepieces can be queued 
  6513. queueTime                 ds.l    1                ; offset: $10 (16)        ;  How much time is queued up? (can be very inaccurate) 
  6514. reserved                 ds.l    3                ; offset: $14 (20)
  6515. sizeof                     EQU *                    ; size:   $20 (32)
  6516.                         ENDR
  6517.  
  6518. kStopTuneFade                    EQU        1                    ; do a quick, synchronous fadeout 
  6519. kStopTuneSustain                EQU        2                    ; don't silece notes 
  6520. kStopTuneInstant                EQU        4                    ; silence notes fast (else, decay them) 
  6521. kStopTuneReleaseChannels        EQU        8                    ; afterwards, let the channels go 
  6522.  
  6523. kTuneSelect                        EQU        3
  6524. kTuneSetHeaderSelect            EQU        4
  6525. kTuneGetTimeBaseSelect            EQU        5
  6526. kTuneSetTimeScaleSelect            EQU        6
  6527. kTuneGetTimeScaleSelect            EQU        7
  6528. kTuneGetIndexedNoteChannelSelect EQU    8
  6529. kTuneDummy                        EQU        9
  6530. kTuneQueueSelect                EQU        10
  6531. kTuneInstantSelect                EQU        11
  6532. kTuneGetStatusSelect            EQU        12
  6533. kTuneStopSelect                    EQU        13
  6534. kTuneResumeSelect                EQU        14
  6535. kTuneFlushSelect                EQU        15
  6536. kTuneSetVolumeSelect            EQU        16
  6537. kTuneGetVolumeSelect            EQU        17
  6538. kTunePrerollSelect                EQU        18
  6539. kTuneUnrollSelect                EQU        19
  6540. kTuneLastSelector                EQU        20
  6541. ; typedef ComponentInstance             TunePlayer
  6542.  
  6543.  
  6544. kMaxTunePlayerParts                EQU        32
  6545. kTunePlayerType                    EQU        'tune'
  6546. ;
  6547. ;--------------------------
  6548. ;    Prototypes
  6549. ;--------------------------
  6550. ;
  6551. ;
  6552. ; pascal ComponentResult TuneSetHeader(TunePlayer tp, unsigned long *header)
  6553. ;
  6554.     IF ¨ GENERATINGCFM THEN
  6555.         Macro
  6556.         _TuneSetHeader
  6557.             move.l              #$00040004,-(sp)
  6558.             moveq               #0,D0
  6559.             dc.w                $A82A
  6560.         EndM
  6561.     ELSE
  6562.         IMPORT_CFM_FUNCTION TuneSetHeader
  6563.     ENDIF
  6564.  
  6565. ;
  6566. ; pascal ComponentResult TuneGetTimeBase(TunePlayer tp, TimeBase *tb)
  6567. ;
  6568.     IF ¨ GENERATINGCFM THEN
  6569.         Macro
  6570.         _TuneGetTimeBase
  6571.             move.l              #$00040005,-(sp)
  6572.             moveq               #0,D0
  6573.             dc.w                $A82A
  6574.         EndM
  6575.     ELSE
  6576.         IMPORT_CFM_FUNCTION TuneGetTimeBase
  6577.     ENDIF
  6578.  
  6579. ;
  6580. ; pascal ComponentResult TuneSetTimeScale(TunePlayer tp, TimeScale scale)
  6581. ;
  6582.     IF ¨ GENERATINGCFM THEN
  6583.         Macro
  6584.         _TuneSetTimeScale
  6585.             move.l              #$00040006,-(sp)
  6586.             moveq               #0,D0
  6587.             dc.w                $A82A
  6588.         EndM
  6589.     ELSE
  6590.         IMPORT_CFM_FUNCTION TuneSetTimeScale
  6591.     ENDIF
  6592.  
  6593. ;
  6594. ; pascal ComponentResult TuneGetTimeScale(TunePlayer tp, TimeScale *scale)
  6595. ;
  6596.     IF ¨ GENERATINGCFM THEN
  6597.         Macro
  6598.         _TuneGetTimeScale
  6599.             move.l              #$00040007,-(sp)
  6600.             moveq               #0,D0
  6601.             dc.w                $A82A
  6602.         EndM
  6603.     ELSE
  6604.         IMPORT_CFM_FUNCTION TuneGetTimeScale
  6605.     ENDIF
  6606.  
  6607. ;
  6608. ; pascal ComponentResult TuneGetIndexedNoteChannel(TunePlayer tp, long i, NoteChannel *nc)
  6609. ;
  6610.     IF ¨ GENERATINGCFM THEN
  6611.         Macro
  6612.         _TuneGetIndexedNoteChannel
  6613.             move.l              #$00080008,-(sp)
  6614.             moveq               #0,D0
  6615.             dc.w                $A82A
  6616.         EndM
  6617.     ELSE
  6618.         IMPORT_CFM_FUNCTION TuneGetIndexedNoteChannel
  6619.     ENDIF
  6620.  
  6621. ;  Values for when to start. 
  6622.  
  6623. kTuneStartNow                    EQU        1                    ; start after buffer is implied 
  6624. kTuneDontClipNotes                EQU        2                    ; allow notes to finish their durations outside sample 
  6625. kTuneExcludeEdgeNotes            EQU        4                    ; dont play notes that start at end of tune 
  6626. kTuneStartNewMaster                EQU        16384
  6627. ;
  6628. ; pascal ComponentResult TuneQueue(TunePlayer tp, unsigned long *tune, Fixed tuneRate, unsigned long tuneStartPosition, unsigned long tuneStopPosition, unsigned long queueFlags, TuneCallBackUPP callBackProc, long refCon)
  6629. ;
  6630.     IF ¨ GENERATINGCFM THEN
  6631.         Macro
  6632.         _TuneQueue
  6633.             move.l              #$001C000A,-(sp)
  6634.             moveq               #0,D0
  6635.             dc.w                $A82A
  6636.         EndM
  6637.     ELSE
  6638.         IMPORT_CFM_FUNCTION TuneQueue
  6639.     ENDIF
  6640.  
  6641. ;
  6642. ; pascal ComponentResult TuneInstant(TunePlayer tp, unsigned long *tune, long tunePosition)
  6643. ;
  6644.     IF ¨ GENERATINGCFM THEN
  6645.         Macro
  6646.         _TuneInstant
  6647.             move.l              #$0008000B,-(sp)
  6648.             moveq               #0,D0
  6649.             dc.w                $A82A
  6650.         EndM
  6651.     ELSE
  6652.         IMPORT_CFM_FUNCTION TuneInstant
  6653.     ENDIF
  6654.  
  6655. ;
  6656. ; pascal ComponentResult TuneGetStatus(TunePlayer tp, TuneStatus *status)
  6657. ;
  6658.     IF ¨ GENERATINGCFM THEN
  6659.         Macro
  6660.         _TuneGetStatus
  6661.             move.l              #$0004000C,-(sp)
  6662.             moveq               #0,D0
  6663.             dc.w                $A82A
  6664.         EndM
  6665.     ELSE
  6666.         IMPORT_CFM_FUNCTION TuneGetStatus
  6667.     ENDIF
  6668.  
  6669. ;  Values for when to start. 
  6670.  
  6671. kStopSustain                    EQU        1                    ; Leaves notes playing, not silent 
  6672. kStopFadeout                    EQU        2                    ; Does a synchronous fade-out 
  6673. ;
  6674. ; pascal ComponentResult TuneStop(TunePlayer tp, long stopFlags)
  6675. ;
  6676.     IF ¨ GENERATINGCFM THEN
  6677.         Macro
  6678.         _TuneStop
  6679.             move.l              #$0004000D,-(sp)
  6680.             moveq               #0,D0
  6681.             dc.w                $A82A
  6682.         EndM
  6683.     ELSE
  6684.         IMPORT_CFM_FUNCTION TuneStop
  6685.     ENDIF
  6686.  
  6687. ;
  6688. ; pascal ComponentResult TuneResume(TunePlayer tp)
  6689. ;
  6690.     IF ¨ GENERATINGCFM THEN
  6691.         Macro
  6692.         _TuneResume
  6693.             move.l              #$0000000E,-(sp)
  6694.             moveq               #0,D0
  6695.             dc.w                $A82A
  6696.         EndM
  6697.     ELSE
  6698.         IMPORT_CFM_FUNCTION TuneResume
  6699.     ENDIF
  6700.  
  6701. ;
  6702. ; pascal ComponentResult TuneFlush(TunePlayer tp)
  6703. ;
  6704.     IF ¨ GENERATINGCFM THEN
  6705.         Macro
  6706.         _TuneFlush
  6707.             move.l              #$0000000F,-(sp)
  6708.             moveq               #0,D0
  6709.             dc.w                $A82A
  6710.         EndM
  6711.     ELSE
  6712.         IMPORT_CFM_FUNCTION TuneFlush
  6713.     ENDIF
  6714.  
  6715. ;
  6716. ; pascal ComponentResult TuneSetVolume(TunePlayer tp, Fixed volume)
  6717. ;
  6718.     IF ¨ GENERATINGCFM THEN
  6719.         Macro
  6720.         _TuneSetVolume
  6721.             move.l              #$00040010,-(sp)
  6722.             moveq               #0,D0
  6723.             dc.w                $A82A
  6724.         EndM
  6725.     ELSE
  6726.         IMPORT_CFM_FUNCTION TuneSetVolume
  6727.     ENDIF
  6728.  
  6729. ;
  6730. ; pascal ComponentResult TuneGetVolume(TunePlayer tp)
  6731. ;
  6732.     IF ¨ GENERATINGCFM THEN
  6733.         Macro
  6734.         _TuneGetVolume
  6735.             move.l              #$00000011,-(sp)
  6736.             moveq               #0,D0
  6737.             dc.w                $A82A
  6738.         EndM
  6739.     ELSE
  6740.         IMPORT_CFM_FUNCTION TuneGetVolume
  6741.     ENDIF
  6742.  
  6743. ;
  6744. ; pascal ComponentResult TunePreroll(TunePlayer tp)
  6745. ;
  6746.     IF ¨ GENERATINGCFM THEN
  6747.         Macro
  6748.         _TunePreroll
  6749.             move.l              #$00000012,-(sp)
  6750.             moveq               #0,D0
  6751.             dc.w                $A82A
  6752.         EndM
  6753.     ELSE
  6754.         IMPORT_CFM_FUNCTION TunePreroll
  6755.     ENDIF
  6756.  
  6757. ;
  6758. ; pascal ComponentResult TuneUnroll(TunePlayer tp)
  6759. ;
  6760.     IF ¨ GENERATINGCFM THEN
  6761.         Macro
  6762.         _TuneUnroll
  6763.             move.l              #$00000013,-(sp)
  6764.             moveq               #0,D0
  6765.             dc.w                $A82A
  6766.         EndM
  6767.     ELSE
  6768.         IMPORT_CFM_FUNCTION TuneUnroll
  6769.     ENDIF
  6770.  
  6771. ; typedef unsigned long                 MusicOpWord
  6772.  
  6773. ; typedef unsigned long *                MusicOpWordPtr
  6774.  
  6775. ;
  6776. ;     QuickTime Music Track Event Formats:
  6777. ;
  6778. ;    At this time, QuickTime music tracks support 5 different event types -- REST events,
  6779. ;    short NOTE events, short CONTROL events, short GENERAL events, Long NOTE events, 
  6780. ;    long CONTROL events, and variable GENERAL events.
  6781. ;        * REST Event (4 bytes/event):
  6782. ;    
  6783. ;            (0 0 0) (5-bit UNUSED) (24-bit Rest Duration)
  6784. ;        
  6785. ;        *†Short NOTE Events (4 bytes/event):
  6786. ;    
  6787. ;            (0 0 1) (5-bit Instrument) (6-bit Pitch) (7-bit Volume) (11-bit Duration)
  6788. ;        
  6789. ;            where:    Pitch is offset by 32 (Actual pitch = pitch field + 32)
  6790. ;
  6791. ;        *†Short CONTROL Events (4 bytes/event):
  6792. ;    
  6793. ;            (0 1 0) (5-bit Instrument) (8-bit Controller) (1-bit UNUSED) (1-bit Sign) (7-bit MSB) (7-bit LSB)
  6794. ;                                                                         ( or 15-bit Signed Value)
  6795. ;        * Short GENERAL Event (4 bytes/event):
  6796. ;    
  6797. ;            (0 1 1) (1-bit UNUSED) (12-bit Sub-Type) (16-bit Value)
  6798. ;    
  6799. ;        * Long NOTE Events (8 bytes/event):
  6800. ;    
  6801. ;            (1 0 0 1) (12-bit Instrument) (1-bit UNUSED) (7-bit Pitch) (1-bit UNUSED) (7-bit Volume)
  6802. ;            (1 0) (8-bit UNUSED) (22-bit Duration)
  6803. ;        
  6804. ;        *†Long CONTROL Event (8 bytes/event):
  6805. ;        
  6806. ;            (1 0 1 0) (12-bit Instrument) (16-bit Value MSB) 
  6807. ;            (1 0) (14-bit Controller) (16-bit Value LSB)
  6808. ;    
  6809. ;        *†Long KNOB Event (8 bytes/event):
  6810. ;    
  6811. ;            (1 0 1 1) (12-bit Sub-Type) (16-bit Value MSB)
  6812. ;            (1 0) (14-bit KNOB) (16-bit Value LSB)
  6813. ;    
  6814. ;        *†Variable GENERAL Length Events (N bytes/event):
  6815. ;    
  6816. ;            (1 1 1 1) (12-bit Sub-Type) (16-bit Length)
  6817. ;                :
  6818. ;            (32-bit Data values)
  6819. ;                :
  6820. ;            (1 1) (14-bit UNUSED) (16-bit Length)
  6821. ;    
  6822. ;            where:    Length field is the number of LONG words in the record.
  6823. ;                    Lengths include the first and last long words (Minimum length = 2)
  6824. ;                
  6825. ;    The following event type values have not been used yet and are reserved for 
  6826. ;    future expansion:
  6827. ;        
  6828. ;        * (1 0 0 0)        (8 bytes/event)
  6829. ;        * (1 1 0 0)        (N bytes/event)
  6830. ;        * (1 1 0 1)        (N bytes/event)
  6831. ;        * (1 1 1 0)        (N bytes/event)
  6832. ;        
  6833. ;    For all events, the following generalizations apply:
  6834. ;    
  6835. ;        -    All duration values are specified in Millisecond units.
  6836. ;        -     Pitch values are intended to map directly to the MIDI key numbers.
  6837. ;        -    Controllers from 0 to 127 correspond to the standard MIDI controllers.
  6838. ;            Controllers greater than 127 correspond to other controls (i.e., Pitch Bend, 
  6839. ;            Key Pressure, and Channel Pressure).    
  6840. ;
  6841. ;  Defines for the implemented music event data fields
  6842.  
  6843. kRestEventType                    EQU        $00000000            ; lower 3-bits 
  6844. kNoteEventType                    EQU        $00000001            ; lower 3-bits 
  6845. kControlEventType                EQU        $00000002            ; lower 3-bits 
  6846. kMarkerEventType                EQU        $00000003            ; lower 3-bits 
  6847. kUndefined1EventType            EQU        $00000008            ; 4-bits 
  6848. kXNoteEventType                    EQU        $00000009            ; 4-bits 
  6849. kXControlEventType                EQU        $0000000A            ; 4-bits 
  6850. kKnobEventType                    EQU        $0000000B            ; 4-bits 
  6851. kUndefined2EventType            EQU        $0000000C            ; 4-bits 
  6852. kUndefined3EventType            EQU        $0000000D            ; 4-bits 
  6853. kUndefined4EventType            EQU        $0000000E            ; 4-bits 
  6854. kGeneralEventType                EQU        $0000000F            ; 4-bits 
  6855. kXEventLengthBits                EQU        $00000002            ; 2 bits: indicates 8-byte event record 
  6856. kGeneralEventLengthBits            EQU        $00000003            ; 2 bits: indicates variable length event record 
  6857. kEventLen                        EQU        1                    ; length of events in long words 
  6858. kXEventLen                        EQU        2
  6859. kRestEventLen                    EQU        1                    ; length of events in long words 
  6860. kNoteEventLen                    EQU        1
  6861. kControlEventLen                EQU        1
  6862. kMarkerEventLen                    EQU        1
  6863. kXNoteEventLen                    EQU        2
  6864. kXControlEventLen                EQU        2
  6865. kGeneralEventLen                EQU        2                    ; 2 or more, however 
  6866.                                                             ; Universal Event Defines
  6867. kEventLengthFieldPos            EQU        30                    ; by looking at these two bits of the 1st or last word              
  6868. kEventLengthFieldWidth            EQU        2                    ; of an event you can determine the event length                      
  6869.                                                             ; length field: 0 & 1 => 1 long; 2 => 2 longs; 3 => variable length 
  6870. kEventTypeFieldPos                EQU        29                    ; event type field for short events 
  6871. kEventTypeFieldWidth            EQU        3                    ; short type is 3 bits 
  6872. kXEventTypeFieldPos                EQU        28                    ; event type field for extended events 
  6873. kXEventTypeFieldWidth            EQU        4                    ; extended type is 4 bits 
  6874. kEventInstrumentFieldPos        EQU        24
  6875. kEventInstrumentFieldWidth        EQU        5
  6876. kXEventInstrumentFieldPos        EQU        16                    ; in the 1st long word 
  6877. kXEventInstrumentFieldWidth        EQU        12                    ; Rest Events
  6878. kRestEventDurationFieldPos        EQU        0
  6879. kRestEventDurationFieldWidth    EQU        24
  6880. kRestEventDurationMax            EQU        $00FFFFFF            ; Note Events
  6881. kNoteEventPitchFieldPos            EQU        18
  6882. kNoteEventPitchFieldWidth        EQU        6
  6883. kNoteEventPitchOffset            EQU        32                    ; add to value in pitch field to get actual pitch 
  6884. kNoteEventVolumeFieldPos        EQU        11
  6885. kNoteEventVolumeFieldWidth        EQU        7
  6886. kNoteEventVolumeOffset            EQU        0                    ; add to value in volume field to get actual volume 
  6887. kNoteEventDurationFieldPos        EQU        0
  6888. kNoteEventDurationFieldWidth    EQU        11
  6889. kNoteEventDurationMax            EQU        $000007FF
  6890. kXNoteEventPitchFieldPos        EQU        0                    ; in the 1st long word 
  6891. kXNoteEventPitchFieldWidth        EQU        16
  6892. kXNoteEventDurationFieldPos        EQU        0                    ; in the 2nd long word 
  6893. kXNoteEventDurationFieldWidth    EQU        22
  6894. kXNoteEventDurationMax            EQU        $003FFFFF
  6895. kXNoteEventVolumeFieldPos        EQU        22                    ; in the 2nd long word 
  6896. kXNoteEventVolumeFieldWidth        EQU        7                    ; Control Events
  6897. kControlEventControllerFieldPos    EQU        16
  6898. kControlEventControllerFieldWidth EQU    8
  6899. kControlEventValueFieldPos        EQU        0
  6900. kControlEventValueFieldWidth    EQU        16
  6901. kXControlEventControllerFieldPos EQU    0                    ; in the 2nd long word 
  6902. kXControlEventControllerFieldWidth EQU    16
  6903. kXControlEventValueFieldPos        EQU        0                    ; in the 1st long word 
  6904. kXControlEventValueFieldWidth    EQU        16                    ; Knob Events
  6905. kKnobEventValueHighFieldPos        EQU        0                    ; 1st long word 
  6906. kKnobEventValueHighFieldWidth    EQU        16
  6907. kKnobEventKnobFieldPos            EQU        16                    ; 2nd long word 
  6908. kKnobEventKnobFieldWidth        EQU        14
  6909. kKnobEventValueLowFieldPos        EQU        0                    ; 2nd long word 
  6910. kKnobEventValueLowFieldWidth    EQU        16                    ; Marker Events
  6911. kMarkerEventSubtypeFieldPos        EQU        16
  6912. kMarkerEventSubtypeFieldWidth    EQU        8
  6913. kMarkerEventValueFieldPos        EQU        0
  6914. kMarkerEventValueFieldWidth        EQU        16                    ; General Events
  6915. kGeneralEventSubtypeFieldPos    EQU        16                    ; in the last long word 
  6916. kGeneralEventSubtypeFieldWidth    EQU        14
  6917. kGeneralEventLengthFieldPos        EQU        0                    ; in the 1st & last long words 
  6918. kGeneralEventLengthFieldWidth    EQU        16
  6919. ;  General Event Defined Types
  6920.  
  6921. kGeneralEventNoteRequest        EQU        1                    ; Encapsulates NoteRequest data structure 
  6922. kGeneralEventInstrument            EQU        2                    ; Encapsulates poly, typical poly, followed by InstrumentData record 
  6923. kGeneralEventFlatInstrument        EQU        3                    ; Encapsulates poly, typical poly, followed by FlatInstrument record 
  6924. kGeneralEventPartName            EQU        4                    ; Brackets 2 longs follwed by a pascal string (padded to long alignment) 
  6925. kGeneralEventPartKey            EQU        5                    ; Brackets 2 longs 
  6926.  
  6927. TCSourceRefNameType                EQU        'name'
  6928.  
  6929. tcDropFrame                        EQU        $01
  6930. tc24HourMax                        EQU        $02
  6931. tcNegTimesOK                    EQU        $04
  6932. tcCounter                        EQU        $08
  6933. TimeCodeDef                RECORD 0
  6934. flags                     ds.l    1                ; offset: $0 (0)        ;  drop-frame, etc.
  6935. fTimeScale                 ds.l    1                ; offset: $4 (4)        ;  time scale of frameDuration (eg. 2997)
  6936. frameDuration             ds.l    1                ; offset: $8 (8)        ;  duration of each frame (eg. 100)
  6937. numFrames                 ds.b    1                ; offset: $C (12)        ;  frames/sec for timecode (eg. 30) OR frames/tick for counter mode
  6938. padding                     ds.b    1                ; offset: $D (13)        ;  unused padding byte
  6939. sizeof                     EQU *                    ; size:   $E (14)
  6940.                         ENDR
  6941.  
  6942. tctNegFlag                        EQU        $80                    ; negative bit is in minutes
  6943. TimeCodeTime            RECORD 0
  6944. hours                     ds.b    1                ; offset: $0 (0)
  6945. minutes                     ds.b    1                ; offset: $1 (1)
  6946. seconds                     ds.b    1                ; offset: $2 (2)
  6947. frames                     ds.b    1                ; offset: $3 (3)
  6948. sizeof                     EQU *                    ; size:   $4 (4)
  6949.                         ENDR
  6950. TimeCodeCounter            RECORD 0
  6951. counter                     ds.l    1                ; offset: $0 (0)
  6952. sizeof                     EQU *                    ; size:   $4 (4)
  6953.                         ENDR
  6954. TimeCodeDescription        RECORD 0
  6955. descSize                 ds.l    1                ; offset: $0 (0)        ;  standard sample description header
  6956. dataFormat                 ds.l    1                ; offset: $4 (4)
  6957. resvd1                     ds.l    1                ; offset: $8 (8)
  6958. resvd2                     ds.w    1                ; offset: $C (12)
  6959. dataRefIndex             ds.w    1                ; offset: $E (14)
  6960. flags                     ds.l    1                ; offset: $10 (16)        ;  timecode specific stuff
  6961. timeCodeDef                 ds        TimeCodeDef        ; offset: $14 (20)
  6962. srcRef                     ds.l    1                ; offset: $22 (34) <-- really an array of length one
  6963. sizeof                     EQU *                    ; size:   $26 (38)
  6964.                         ENDR
  6965. ; typedef struct TimeCodeDescription *    TimeCodeDescriptionPtr
  6966.  
  6967. ; typedef TimeCodeDescriptionPtr *        TimeCodeDescriptionHandle
  6968.  
  6969.  
  6970. tcdfShowTimeCode                EQU        $01
  6971.  
  6972. kTCGetCurrentTimeCodeSelect        EQU        257
  6973. kTCGetTimeCodeAtTimeSelect        EQU        258
  6974. kTCTimeCodeToStringSelect        EQU        259
  6975. kTCTimeCodeToFrameNumberSelect    EQU        260
  6976. kTCFrameNumberToTimeCodeSelect    EQU        261
  6977. kTCGetSourceRefSelect            EQU        262
  6978. kTCSetSourceRefSelect            EQU        263
  6979. kTCSetTimeCodeFlagsSelect        EQU        264
  6980. kTCGetTimeCodeFlagsSelect        EQU        265
  6981. kTCSetDisplayOptionsSelect        EQU        266
  6982. kTCGetDisplayOptionsSelect        EQU        267
  6983. ;
  6984. ; pascal HandlerError TCGetCurrentTimeCode(MediaHandler mh, long *frameNum, TimeCodeDef *tcdef, TimeCodeRecord *tcrec, UserData *srcRefH)
  6985. ;
  6986.     IF ¨ GENERATINGCFM THEN
  6987.         Macro
  6988.         _TCGetCurrentTimeCode
  6989.             move.l              #$00100101,-(sp)
  6990.             moveq               #0,D0
  6991.             dc.w                $A82A
  6992.         EndM
  6993.     ELSE
  6994.         IMPORT_CFM_FUNCTION TCGetCurrentTimeCode
  6995.     ENDIF
  6996.  
  6997. ;
  6998. ; pascal HandlerError TCGetTimeCodeAtTime(MediaHandler mh, TimeValue mediaTime, long *frameNum, TimeCodeDef *tcdef, TimeCodeRecord *tcdata, UserData *srcRefH)
  6999. ;
  7000.     IF ¨ GENERATINGCFM THEN
  7001.         Macro
  7002.         _TCGetTimeCodeAtTime
  7003.             move.l              #$00140102,-(sp)
  7004.             moveq               #0,D0
  7005.             dc.w                $A82A
  7006.         EndM
  7007.     ELSE
  7008.         IMPORT_CFM_FUNCTION TCGetTimeCodeAtTime
  7009.     ENDIF
  7010.  
  7011. ;
  7012. ; pascal HandlerError TCTimeCodeToFrameNumber(MediaHandler mh, TimeCodeDef *tcdef, TimeCodeRecord *tcrec, long *frameNumber)
  7013. ;
  7014.     IF ¨ GENERATINGCFM THEN
  7015.         Macro
  7016.         _TCTimeCodeToFrameNumber
  7017.             move.l              #$000C0104,-(sp)
  7018.             moveq               #0,D0
  7019.             dc.w                $A82A
  7020.         EndM
  7021.     ELSE
  7022.         IMPORT_CFM_FUNCTION TCTimeCodeToFrameNumber
  7023.     ENDIF
  7024.  
  7025. ;
  7026. ; pascal HandlerError TCFrameNumberToTimeCode(MediaHandler mh, long frameNumber, TimeCodeDef *tcdef, TimeCodeRecord *tcrec)
  7027. ;
  7028.     IF ¨ GENERATINGCFM THEN
  7029.         Macro
  7030.         _TCFrameNumberToTimeCode
  7031.             move.l              #$000C0105,-(sp)
  7032.             moveq               #0,D0
  7033.             dc.w                $A82A
  7034.         EndM
  7035.     ELSE
  7036.         IMPORT_CFM_FUNCTION TCFrameNumberToTimeCode
  7037.     ENDIF
  7038.  
  7039. ;
  7040. ; pascal HandlerError TCTimeCodeToString(MediaHandler mh, TimeCodeDef *tcdef, TimeCodeRecord *tcrec, StringPtr tcStr)
  7041. ;
  7042.     IF ¨ GENERATINGCFM THEN
  7043.         Macro
  7044.         _TCTimeCodeToString
  7045.             move.l              #$000C0103,-(sp)
  7046.             moveq               #0,D0
  7047.             dc.w                $A82A
  7048.         EndM
  7049.     ELSE
  7050.         IMPORT_CFM_FUNCTION TCTimeCodeToString
  7051.     ENDIF
  7052.  
  7053. ;
  7054. ; pascal HandlerError TCGetSourceRef(MediaHandler mh, TimeCodeDescriptionHandle tcdH, UserData *srefH)
  7055. ;
  7056.     IF ¨ GENERATINGCFM THEN
  7057.         Macro
  7058.         _TCGetSourceRef
  7059.             move.l              #$00080106,-(sp)
  7060.             moveq               #0,D0
  7061.             dc.w                $A82A
  7062.         EndM
  7063.     ELSE
  7064.         IMPORT_CFM_FUNCTION TCGetSourceRef
  7065.     ENDIF
  7066.  
  7067. ;
  7068. ; pascal HandlerError TCSetSourceRef(MediaHandler mh, TimeCodeDescriptionHandle tcdH, UserData srefH)
  7069. ;
  7070.     IF ¨ GENERATINGCFM THEN
  7071.         Macro
  7072.         _TCSetSourceRef
  7073.             move.l              #$00080107,-(sp)
  7074.             moveq               #0,D0
  7075.             dc.w                $A82A
  7076.         EndM
  7077.     ELSE
  7078.         IMPORT_CFM_FUNCTION TCSetSourceRef
  7079.     ENDIF
  7080.  
  7081. ;
  7082. ; pascal HandlerError TCSetTimeCodeFlags(MediaHandler mh, long flags, long flagsMask)
  7083. ;
  7084.     IF ¨ GENERATINGCFM THEN
  7085.         Macro
  7086.         _TCSetTimeCodeFlags
  7087.             move.l              #$00080108,-(sp)
  7088.             moveq               #0,D0
  7089.             dc.w                $A82A
  7090.         EndM
  7091.     ELSE
  7092.         IMPORT_CFM_FUNCTION TCSetTimeCodeFlags
  7093.     ENDIF
  7094.  
  7095. ;
  7096. ; pascal HandlerError TCGetTimeCodeFlags(MediaHandler mh, long *flags)
  7097. ;
  7098.     IF ¨ GENERATINGCFM THEN
  7099.         Macro
  7100.         _TCGetTimeCodeFlags
  7101.             move.l              #$00040109,-(sp)
  7102.             moveq               #0,D0
  7103.             dc.w                $A82A
  7104.         EndM
  7105.     ELSE
  7106.         IMPORT_CFM_FUNCTION TCGetTimeCodeFlags
  7107.     ENDIF
  7108.  
  7109. ;
  7110. ; pascal HandlerError TCSetDisplayOptions(MediaHandler mh, TCTextOptionsPtr textOptions)
  7111. ;
  7112.     IF ¨ GENERATINGCFM THEN
  7113.         Macro
  7114.         _TCSetDisplayOptions
  7115.             move.l              #$0004010A,-(sp)
  7116.             moveq               #0,D0
  7117.             dc.w                $A82A
  7118.         EndM
  7119.     ELSE
  7120.         IMPORT_CFM_FUNCTION TCSetDisplayOptions
  7121.     ENDIF
  7122.  
  7123. ;
  7124. ; pascal HandlerError TCGetDisplayOptions(MediaHandler mh, TCTextOptionsPtr textOptions)
  7125. ;
  7126.     IF ¨ GENERATINGCFM THEN
  7127.         Macro
  7128.         _TCGetDisplayOptions
  7129.             move.l              #$0004010B,-(sp)
  7130.             moveq               #0,D0
  7131.             dc.w                $A82A
  7132.         EndM
  7133.     ELSE
  7134.         IMPORT_CFM_FUNCTION TCGetDisplayOptions
  7135.     ENDIF
  7136.  
  7137. ;  UPP call backs 
  7138.     ENDIF
  7139.     ENDIF ; __QUICKTIMECOMPONENTS__ 
  7140.  
  7141.